2010-10-18 12 views
17

Sto utilizzando l'API javax.comm per consentire al mio programma di comunicare con l'hardware tramite la porta seriale. Sto usando l'IDE di Windows 7 e NetBeans 9.API Javax.comm su Windows 64 bit

Ho usato il programma Java comune per controllare le porte disponibili sul mio PC. Il programma è stato compilato e eseguito senza errori. Tuttavia non ha restituito nulla.

Cosa posso fare per utilizzare l'API javax.comm su Windows? Sembra che win32com.dll non funzioni con un sistema operativo a 64 bit.

risposta

3

sembrare il win32com.dll non funziona con 64-bit del sistema operativo

Penso che sia corretto. Infatti, in base alla relativa pagina di download, Oracle non è più supporta l'API javax.comm per la piattaforma Windows qualsiasi.

Tuttavia, ho trovato this page che ha una build a 64 bit della DLL, tra le altre cose.

EDIT

da un pezzo incredibile di ricerca (cioè seguendo i link e la lettura di roba) ho trovato la download page per l'ultimo RXTX, che sostiene di avere i binari per varie piattaforme. Se la tua piattaforma non è presente, prova a costruire dalla fonte. Se ciò non funziona, considera di investire nello sforzo per farlo funzionare.

+0

Grazie Stephen, ho visitato il link http://www.euclideanspace.com/software/language/java/comm/ a cui si è fatto riferimento e vedo che questo pacchetto è per Linux. Volevo un pacchetto per Windows, comunque. – Nathi

1

Hai dato un'occhiata a RXTX? Penso che sia ancora attivo.

+0

Ciao Peter Ho il RXTX, ma ho dei problemi su come usarlo. Vorrei poter ottenere qualche codice di esempio che utilizza RXTX – Nathi

+0

È tutto spiegato qui http://rxtx.qbang.org/wiki/index.php/Using_RXTX, hai letto questo? – PeterMmm

5

Le versioni 2.2pre recenti di RXTX includono file binari per finestre a 64 bit. I pensare l'ultima fonte di informazione RXTX è stata modificata in questo modo: http://rxtx.qbang.org invece di http://www.rxtx.org.

A un certo punto la libreria RXTX ha incluso il supporto drop-in per l'utilizzo di javax.comm api. Non sono sicuro che lo faccia ancora, ma la modifica principale da utilizzare per la confezione RXTX "nativa" è stata principalmente la modifica del nome di un pacchetto.

+0

Stai dicendo che il pacchetto rxtx ha le stesse classi e metodi di javax.comm? non sono sicuro di poter usare la stessa identica procedura che ho fatto su javax.comm. – Nathi

+0

In una versione precedente di RXTX, sì. È possibile utilizzare i pacchetti javax.comm e le classi dell'API Java COMM, con RXTX come semplice sostituzione di implementazione drop-in. Nelle versioni più recenti di RXTX, dovrai cambiare i pacchetti importati da "javax.comm. *" A "gnu.io. *". Oltre a questo, le classi e le API saranno probabilmente il 99% uguali. Confronta le due API qui: http://rxtx.qbang.org/wiki/index.php/Sviluppo. – kaliatech

+0

binari a 64 bit: http://www.cloudhopper.com/opensource/rxtx/ – lepike

1

ho avuto questo problema ... su un 64 bit di Windows 7 machine..running

un'applicazione legacy sviluppate in JDK 1.4, per 32 bit di Windows ... e con il win32 api comm binario

ho provato il binario RXTX per 64 bit e sono stato in grado di comunicare con il mio dispositivo su un certo livello ... ma ... c'erano altri problemi mentre la mia applicazione faceva riferimento a una versione della libreria jpos che internamente stava usando il comm-api (aveva importatore javax.comm. * ... in alcuni Serial ... classe Listener) ....

Ho installato un 32 bit jdk e imposta i binari comm-api per le finestre a 32 bit come indicato qui ...setup comm api on windows

è andato tutto bene dopo

2

ho integrato le librerie RXTX in alcuni dei miei progetti precedenti e ho scoperto questo bug è ha funzionato con le porte di comunicazione in Windows, quindi dovresti controllare questo prima di iniziare con un design serio delle app. La comunicazione funziona bene, non ho mai avuto problemi con questo, ma una volta aperta la porta non puoi chiuderla e riaprirla, se usi il metodo fornito per la chiusura della porta, la tua app si blocca, nessuna eccezione niente. In seguito ho scoperto lo stesso comportamento descritto dagli utenti sul Web, ma non ho mai trovato la soluzione a questo problema. Ancora una volta, questo potrebbe aiutarti a risparmiare un po 'di tempo, controllalo prima.

L'ultima versione, che è questa http://rxtx.qbang.org/pub/rxtx/rxtx-2.1-7-bins-r2.zip, non ha più questo problema. Sfortunatamente penso che sia stato risolto solo per Windows, è ancora presente sui binari di Linux, e non l'ho provato su mac.

9

Ecco come ho potuto farlo funzionare.
L'ho provato usando JDK 1.6 (32 bit) sulla mia macchina Windows 7 a 64 bit.

  1. Installa JDK a 32 bit.
  2. Copia 'win32com.dll' in JDK_HOME \ jre \ bin.
  3. Copia 'javax.comm.properties' su JDK_HOME \ jre \ lib.
  4. Copia "comm.jar" su JDK_HOME \ jre \ lib \ ext.

Ora esegui il tuo programma e dovrebbe funzionare.