2010-10-18 60 views
17

Estoy usando la API de javax.comm para ayudar a que mi programa se comunique con el hardware a través del puerto serie. Estoy utilizando el IDE NetBeans Windows 7 y 9.API de Javax.comm en Windows de 64 bits

que utiliza el programa Java común para comprobar los puertos disponibles en mi PC. El programa compilado y funcionó sin error. Sin embargo, no devolvió nada.

¿Qué puedo hacer para usar la API de javax.comm en Windows? Parece que win32com.dll no funciona con un sistema operativo de 64 bits.

Respuesta

3

que parezca el win32com.dll no funciona con el sistema operativo de 64 bits

creo que es correcto. De hecho, de acuerdo a la página de descarga correspondiente, Oracle ya no soporta la API javax.comm para cualquier plataforma Windows.

Sin embargo, encontré this page que tiene una acumulación de 64 bits de la DLL, entre otras cosas.

EDITAR

por una pieza asombrosa de la investigación (es decir, siguiendo los enlaces y otras cosas de lectura) encontré la download page para la última RXTX, que dice tener binarios para diversas plataformas. Si su plataforma no está allí, intente construir desde la fuente. Si eso no funciona, considere invertir el esfuerzo para que funcione.

+0

Gracias Stephen, visité el enlace http://www.euclideanspace.com/software/language/java/comm/ al que se refiere y veo que este paquete es para Linux. Sin embargo, quería un paquete para las ventanas. – Nathi

1

¿Han echado un vistazo al RXTX? Creo que todavía está activo.

+0

Hola Peter Tengo el RXTX, pero tengo problemas sobre cómo usarlo. Desearía poder obtener algunos ejemplos de códigos que usan RXTX – Nathi

+0

Todo se explica aquí http://rxtx.qbang.org/wiki/index.php/Using_RXTX, ¿leíste esto? – PeterMmm

5

versiones recientes de 2.2pre RXTX incluyen binarios para Windows de 64 bits. I piensa que la última fuente de información RXTX ha cambiado a esto: http://rxtx.qbang.org en lugar de http://www.rxtx.org embargo.

En un momento la biblioteca RXTX incluido drop-in soporte para utilizar la API de javax.comm. No estoy seguro de si todavía lo hace, pero el principal cambio para usar el paquete RXTX "nativo" fue principalmente un cambio de nombre de paquete.

+0

¿Está diciendo que el paquete rxtx tiene las mismas clases y métodos que el javax.comm? No estoy seguro si puedo usar el mismo mismo procedimiento que hice en javax.comm. – Nathi

+0

En versiones anteriores de RXTX, sí. Puede usar los paquetes javax.comm y las clases de la API COMM de Java, con RXTX como una simple implementación de reemplazo. En las versiones más nuevas de RXTX, deberá cambiar los paquetes importados de "javax.comm. *" A "gnu.io. *". Aparte de eso, las clases y API serán probablemente el 99% iguales. Compare las dos API aquí: http://rxtx.qbang.org/wiki/index.php/Development. – kaliatech

+0

binarios de 64 bits: http://www.cloudhopper.com/opensource/rxtx/ – lepike

1

tuve este problema ... en un Windows 64 bits machine..running 7

una aplicación heredada desarrollados en el JDK 1.4, de 32 bits de Windows ... y utilizando la API de Win32 comunicación binaria

probé el binario RXTX para 64 bits y pude comunicarme con mi dispositivo en algún nivel ... pero ... había otros problemas ya que mi aplicación hacía referencia a una versión de la biblioteca jpos que internamente estaba usando comm-api (había importado javax.comm. * ... en algún Serial ... Clase de escucha) ....

Instalé un 32 bit jdk y configure los binarios de comm-api para ventanas de 32 bits como se indica aquí ...setup comm api on windows

todo estaba bien después

2

he integrado bibliotecas RXTX en algunos de mis proyectos anteriores y descubrí que este error tiene al trabajar con puertos de comunicación en Windows, por lo que es posible que desee comprobar esto antes de entrar en un diseño de aplicación serio. La comunicación funciona bien, nunca tuvo ningún problema con eso, pero una vez que abres el puerto no puedes cerrarlo y volver a abrirlo, si usas el método provisto para cerrar el puerto, tu aplicación simplemente se cuelga, no hay excepción, no hay nada. Más tarde encontré el mismo comportamiento descrito por los usuarios en la web, pero nunca encontré la solución a este problema. Nuevamente, esto podría ayudarlo a ahorrar algo de tiempo, revíselo primero.

La última versión, que es esta http://rxtx.qbang.org/pub/rxtx/rxtx-2.1-7-bins-r2.zip, no tiene este problema no más. Desafortunadamente, creo que está resuelto solo para Windows, todavía está allí en los binarios de Linux, y no lo he probado en Mac.

9

Así es como lo hice funcionar.
Lo he probado usando JDK 1.6 (32 bits) en mi máquina Windows 7 de 64 bits.

  1. Instalar 32bit JDK.
  2. Copie 'win32com.dll' en JDK_HOME \ jre \ bin.
  3. Copie 'javax.comm.properties'to en JDK_HOME \ jre \ lib.
  4. Copie 'comm.jar'to en JDK_HOME \ jre \ lib \ ext.

Ahora ejecute su programa y debería funcionar.

Cuestiones relacionadas