Apuntes de Java

Anuncio
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
Descargar