La versión del Comm API (Java(tm) Communications API) para Windows está formada por tres archivos: win32com.dll comm.jar javax.comm.properties Si queremos ejecutar alguna aplicación que haga uso del puerto serie o el paralelo debemos realizar la instalación en el JRE (cuyo path es parecido a “C:\Archivos de programa\Java\jre6\” o “C:\Archivos de programa\Java\jre1.6.0_03″), para ello tenemos que colocar los archivos en: o o o win32com.dll PATH_JRE\bin\ comm.jar PATH_JRE\lib\ext\ javax.comm.properties PATH_JRE\lib\ Si queremos desarrollar alguna aplicación que haga uso del puerto serie o el paralelo debemos realizar la instalación en el JDK (cuyo path parecido a “C:\Archivos de programa\Java\jdk1.6.0_12″), para ello tenemos que colocar los archivos en: o o o o o o o win32com.dll PATH_JDK\bin\ PATH_JDK\jre\bin\ C:\WINDOWS\system32\ comm.jar PATH_JDK\lib\ PATH_JDK\jre\lib\ext\ javax.comm.properties PATH_JDK\lib\ PATH_JDK\jre\lib\ ola buenas, me han encargado el desarrollo de un aplicativo que lea datos a través de un puerto serie RS232, dicho aplicativo lo tengo que hacer en JAVA, como entorno de desarrollo estoy utilizando Netbeans 5.5 y sistema operativo windows xp profesional, tengo varias dudas: ¿Qué librería es más recomendable para realizar lecturas de un puerto serie RS232? ¿Es algo tan complicado como me lo esta pareciendo de inicio? ¿Me imagino que existirán códigos java para realizar lecturas de RS 232, sabes donde o como puedo conseguir alguno? ¿Si sabes de cualquier web, libro etc.. que me pueda ayudar en esto te agradecería que me comentaras tus sugerencias? Finalmente cuya Anuncios Google Sigma Electronica Ltda. Circuitos Integrados, Sensores Pantallas LCD, Programadores www.sigmaelectronica.net Experto Hola, Mira en realidad no estas complicado pero si concuerdo contigo en que no hay mucha información al respecto y la que hay a veces es muy confusa. Yo he utilizado la implementación de IBM de la especificación de java para leer/escribir en el puerto serial, la documentación trae ejemplos sobre como usarlo. La implementacion te la puedes bajar de este link: http://jjbox.sourceforge.net/files/ibm-javacomm-win32-x86.zip. En esta liga puedes encontrar algo de info: http://publib.boulder.ibm.com/infocenter/javasdk/v6r0/index.jsp?topic=/com.ibm.java.doc.u ser.win32.60/user/jcommchapter.html El uso de la librería es bastante sencillo, usas la clase SerialPort para abrir el puerto serial (le especificas que puerto, la paridad, la velocidad, etc), añades un eventlistener a esta clase para que te avise cuando han llegado datos, con esta clase obtienes un inputStream el cual puedes ya manipular a tu gusto. Se que SUN tiene otra implementación del api del puerto serial, más nunca la he usado, aunque supongo que no debe tener mucha diferencia en su uso. Saludos. Usuario Tengo varias dudas, haber si me las puedes aclarar: Si no he entendido mal se instalan los archivos de la librería en los directorios que indica del jre de mi equipo. Una vez hecho esto me indica que tengo que configurar el api, concretamente el archivo javax.comm.properties, especificandole el driver: driver=com.sun.comm.Win32Driver, pero no se muy bien para que sirve en concreto esto, me lo puedes explicar? Gracias de todas formas los links son justo lo que necesitaba. Experto Hola, Así es básicamente tienes que copiar los archivos de la librería en el directorio de tu jre (recuerda que en caso de que vayas a usar tu app en otro equipo copiar esos archivos en el jre del equipo o distribuir tu app junto con tu directorio jre). Sobre el archivo properties no te preocupes mucho ya viene configurado por defecto, básicamente lo que hace es que usa una librería nativa de windows para acceder al puerto serial, es por eso que hay dos versiones de esta librería (para windows y linux) debido a que usa librerías nativas para acceder a los puertos seriales, el código en java es el mismo para ambos, por lo que podría decirse que realmente el comm.jar es un wrapper alrededor de una librería nativa del sistema operativo. Saludos. Usuario Una ultima cuestión, mi aplicativo va implantarse en muchos equipos, por tanto seria recomendable que llevara el jre consigo junto con la librería instalada, hasta ahora para incluir el jre he utilizado Jmoosth pero no se por que no me funciona siempre bien, ¿qué método empleas tu para incorporar el jre en tu proyecto y que el jar busque la maquina donde tu le indicas? Muchas gracias y un saludo Experto Hola, Mira usualmente yo lo que hago es crear una carpeta para la aplicación (llemémosla demo), dentro de esta carpeta meto mi jar, meto las librerías y meto el jre, y me queda una estructura como la siguiente: demo jre libs demo.jar Creo un archivo .bat o un shell script para el caso de linux/unix, donde pongo la variable de ambiente del java_home a que apunte a mi jre y después ejecuto mi jar. Es una forma muy simple de distribución, quizás no muy profesional pero muy simple y funciona. Saludos. Usuario Como decía un antiguo profesor mio lo simple nunca falla.. oye tendrás que disculparme por ser algo novato pero nunca he trabajado con .bat, podrías pegarme el código que lleva ese bat para entenderlo mejor, de todas formas muchas gracias por la dedicación en la respuesta se agradece. Un saludo Experto Hola, Un ejemplo seria esto: @echo off set JAVA_HOME=c:\demo\jre start c:\demo\jre\bin\javaw -jar demo.jar Buenas tardes Hice una aplicación en java. Ahora quiero distribuirla. La aplicación necesita varias librerías que yo añadí al jdk. Supongo que debo distribuir el jre con estas librerías. ¿Cómo empaqueto todo (el jre + librerías adicionales + mi aplicación) en un solo ejecutable de tal forma que el usuario final solo tenga que hacer doble clic para correr la aplicación?. Muchas gracias. Anuncios Google Microsoft® Office 365 Sus Programas de Office Disponibles Dónde y Cuándo quieras. www.microsoft.com/office365 Experto Hola, Puedes crear una carpeta para tu aplicación, ahí pones el jre (con tus librerías) y pones el jar de la aplicación, creas un archivo .bat (si lo distribuyes sobre windows, si va a ser sobre Linux creas un script de shelll) y desde ahí ejecutas tu aplicación (ojo, tienes que asegurarte que tu aplicación corra desde el jre que tu distribuyes no desde algún jre que ya se tenga instalado en la maquina que lo instalas). Todo esto lo puedes comprimir en un zip y para instalarlo solo descomprimes. Si usas algún tipo de paquete instalador hasta te puede crear los accesos directos. El jar de una aplicación java no puede contener otros jar dentro de el, es por eso que no puedes distribuir todo en un gran archivo .jar Si tienes alguna duda, con gusto te apoyo. Saludos. Usuario Añadí el jre a la carpeta. Cree un batch que instala el jre, copia los archivos necesarios y crea los accesos directos. El batch funciona en XP pero en vista no. Si le doy doble clic los permisos no son suficientes. Si lo ejecuto como administrador aparece como si el batch estuviera en C:/windows/System32 y pierdo todas los paths( ya no se encuentran los archivos). ¿Cómo hago para que el batch sepa desde donde fue llamado? Experto Anuncios Google Software World Office ® Por pocos días versión Contador 290.000 pesos más iva www.worldoffice.com.co Puedes intentar 2 cosas, la primera cambiarte al directorio de instalación de tu programa antes de ejecutar el jar (Esto debería mantener el directorio en tu instalación). La otra es cuando creas el acceso directo, ve a propiedades y en el directorio de trabajo pon la ruta de la instalación de tu aplicación. Yo también he tenido muchos problemas con windows vista, hace cosas medias extrañas. Una tercera opción un poco más drástica, es que uses el java instalado en la maquina, mueve tus librerías a un directorio dentro de tu instalación y en el manifiesto del jar, añade esa carpeta como parte de tu classpath, esto permitirá que al hacer doble click directamente sobre el jar la aplicación funcione. Saludos. Más respuestas java aplicación jre Distribuir jre Empaquetar librería javacomm Java oracle classes12.jar javacomm distribuir con jre nuncios Google Microsoft® Office 365 Prueba Gratis Microsoft® Office Mira las Soluciones de Negocios ya! www.microsoft.com/office365 Hola buenas Estoy desarrollando un aplicativo con la librería javacomm para enviar y recibir por el puerto serie. La librería la tengo instalada en el JDK para desarrollar y funciona perfectamente. Pero estoy teniendo un problema, ya que cuando quiero hacer una prueba de distribución, donde meto en una carpeta: mi JRE+.jar de mi aplicación+la carpeta lib con los jar:javacomm.jar y swing-layout-1.0.jar, y creo un ejecutable con JSmooth, cuando creo el ejecutable también le indico que utilice el jre de dicha carpeta, a mayores el JRE que incluyo lleva instalados los mismos archivos que traía la librería javacomm para incluir en el JDK. Os pongo por si alguien lo necesita la página para instalarla en el JDK: http://sprogramando.wikidot.com/apicomm-instalaci on El método funciona, pero cuando quiero hacer lo mismo con el JRE para poder distribuir mi aplicativo, no funciona, agradecería cualquier ayuda respecto a este tema para poder distribuir mi aplicativo con dicha librería y que funcione con el JRE que yo adjunte para no depende si lo tiene instalado o no. Gracias por la atención y Un saludo. Experto Hola, ¿A qué te refieres de cuando quieres hacer lo mismo con el JRE?, en teoría si tu distribuyes tu JRE con las librerías de javacomm ya dentro de el debe funcionar todo sin problemas. ¿Has probado si después de empaquetar e instalar las librerías del javacomm están ahí? Saludos. Usuario Anuncios Google Sigma Electronica Ltda. Circuitos Integrados, Sensores Pantallas LCD, Programadores www.sigmaelectronica.net Ya lo he solucionado, he instalado la librería javacomm en el JRE, luego he realizado un ejecutable con JSmooth y le he referenciado el JRE con la librería instalada, y funciona perfectamente, gracias de todas formas. Un saludo Apuntes de Java ¡Todas las semanas un nuevo apunte! Si Dios (y el trabajo) lo permiten :) Visita http://kenai.com/projects/apuntes LinkedIn: Apuntes de Java Página principal Búsqueda Acerca del autor Facebook Buscar MARTES, 8 DE JUNIO DE 2010 Empaquetar una aplicación para distribuir, desde NetBeans Uno de los tantos motivos por lo que utilizo NetBeans en lugar de otro IDE, es que utiliza la Apache Ant para compilar, crear .jar .war .ear, javadoc, etc.. prácticamente para todo, y solo usando un archivo .xml. Y lo mejor es que se puede personalizar el .xml a nuestro antojo. En este post se va a explicar cómo empaquetar una aplicación Swing en un archivo .zip para ser distribuido a los usuarios finales. ¿Qué hace NetBeans? Si al hacer una aplicación Swing con NetBeans utilizamos diversas bibliotecas adicionales, el IDE nos puede crear una carpeta lista para distribuir a los usuarios incluyendo todas los .jars necesarios. Para ello hacemos clic derecho sobre el ícono del proyecto y seleccionamos "Build" (o Clean and Build) Al hacer esto, el NetBeans compila, y construye la carpeta "dist" para distribuir. Esta carpeta se encuentra en la misma carpeta del proyecto. Podemos verla en el panel "Files" del NetBeans (Teclas Ctrl+2) Ahora bien ¿qué hacemos con ese .jar? En el README.TXT lo explica. Pero NetBeans también lo dice en el panel "Output" (Ctrl+4) después de construir la aplicación. "Para ejecutar esta aplicación desde la línea de comandos sin usar Ant, intente:..." y luego dice cuál es el comando que se tiene que hacer. Si copiamos esa línea, abrimos la ventana del Símbolo del Sistema, y pegamos esa instrucción para ejecutarlo, pues nos ejecutará la aplicación sin problemas. Es más, se podría copiar a los usuarios finales este directorio "dist" y decirles que si quieren ejecutarlo hagan esto: abrir una ventana del Símbolo del Sistema, escribir esa instrucción y listo.........creo que al usuario no le va a gustar hacer esto ¿Por qué no mejor hacer un programa que al hacer doble clic ya se ejecuté? Buena idea. Creando un .bat De por sí, se puede hacer doble clic al archivo .jar para ejecutar la aplicación, pero funciona si es que en el computador del usuario no tiene algún descompresor de archivos asociado a los archivos .jar. Por ejemplo, si se tiene instalado el WinRAR, al hacer doble clic sobre el archivo .jar, en lugar de que se ejecute, se abrirá el WinRAR y mostrará el contenido del .jar... esto no es lo que queremos. La mejor manera es crear un archivo .bat que haga la llamada al comando java -jar bla bla Esto le podemos decir al NetBeans que lo haga. Para ello, entramos al panel "Files" (Ctrl+2) y buscamos el archivobuild.xml. Este es una extensión al .xml que utiliza el NetBeans para construir la aplicación. Abrimos este archivo, lo revisamos un poco (todo está comentado y hay algunas instrucciones) y pondremos el tag<target name='-post-jar'/> que nos permitirá realizar una tarea después de que el NetBeans haya creado el .jar <target name="-post-jar"> <echo file="${dist.dir}/run.bat">java -jar ${application.title}.jar</echo> </target> El tag de la tarea <echo /> crea una salida a la consola, pero con el atributo file le estamos diciendo que la salida lo haga a un archivo. Para saber cuáles son los valores de las variables utilizadas en la construcción del proyecto, podemos revisar el archivo nbproject/project.properties. Por ello utilicé las variables dist.dir, application.title. Ahora bien, hagamos un "Build" al proyecto y veamos lo que hizo en la carpeta dist. Y si vemos el contenido será justamente lo que hemos pensado. Abrimos una ventana del explorador de windows, y le damos doble clic al .bat. Listo, usuario satisfecho. Pero.. sale una ventana negra fea con el comando de ejecución de la aplicación. Bueno, esto se puede solucionar. Podemos reemplazar la instrucción <echo file="${dist.dir}/run.bat">java -jar ${application.title}.jar</echo> Por <echo file="${dist.dir}/run.bat">start javaw -jar ${application.title}.jar</echo> El comando de Windows start permite ejecutar una aplicación y "soltarlo" para que se ejecute como un proceso más del Sistema Operativo. Y el comando javaw es un comando adicional al JRE que permite ejecutar una aplicación java sin mostrar una ventana del Símbolo del Sistema. Bien, ahora solo nos bastaría con copiar a los usuarios finales el .bat, el .jar y las bibliotecas adicionales so hubiera. Lo empaquetamos y se lo enviamos. ¿Hay un poco de flojera para comprimir los archivos? ¿y si me falta uno? Creando un .zip El Ant también permite comprimir archivos usando la tarea <zip />. Es realmente fácil. Creamos el siguiente tag después del <echo />. <zip destfile="${dist.dir}/${application.title}.zip" basedir="${dist.dir}" /> Hagamos "Clean and Build" al proyecto, y listo, ya tenemos nuestro archivo .zip para enviar a los usuarios finales. Y les decimos "Estimados bla bla bla, descompriman el achivo .zip para ejecutar la aplicación". ¿También tenemos flojera de enviar el mail a los usuarios? :) Documentación Si deseas conocer más tareas que vienen incluidas en el ANT, revisa la siguiente página. Apache Ant User Manual: http://ant.apache.org/manual/index.html Ahí está la tarea mail Proyecto Y como de costumbre, aquí está el proyecto utilizado en este ejemplo: http://java.net/downloads/apuntes/samples/netbeans/DemoSwingAntCustomized.tar.gz