Newsgroup: it.comp.java
Titolo: Javax.comm

Ciao a tutti. Ho un problema nell'utilizzo di questo package per le 
comunicazioni sulla porta seriale. Ogni volta che utilizzo il metodo 
CommPortIdentifier.getCommPortIdentifiers() non viene rilevata alcuna porta 
sul pc, nel senso che l'oggetto Enumeration utilizzato per la lista 
contiene sempre null. Ho provato ad utilizzare anche l'applicazione 
d'esempio che vi riporto sotto ma senza alcun risultato. Ho installato, 
come scritto nel readme del package javax.comm, il file jar nella directory  
lib della j2sdk insieme al suo file .properties. Per sviluppare utilizzo 
NetBeans IDE 4.1 e ho aggiunto alle proprietą del progetto la libreria 
javax.comm, ma nonostante tutto questo continuo a non ottenere nulla. Se 
qualcuno mi potesse dare una mano gliene sarei infinitamente grato, č una 
cosa abbastanza urgente!!!! Grazie mille a tutti.
import java.io.*;
import java.util.*;
import javax.comm.*;
public class SimpleWrite {
    static Enumeration portList;
    static CommPortIdentifier portId;
    static String messageString = "Hello, world!\n";
    static SerialPort serialPort;
    static OutputStream outputStream;
    public static void main(String[] args) {
        portList = CommPortIdentifier.getPortIdentifiers();
        while (portList.hasMoreElements()) {
            portId = (CommPortIdentifier) portList.nextElement();
            if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) {
                // if (portId.getName().equals("COM1")) {
                if (portId.getName().equals("/dev/term/a")) {
                    try {
                        serialPort = (SerialPort)
                            portId.openPort("SimpleWriteApp", 2000);
                    } catch (PortInUseException e) {}
                    try {
                        outputStream = serialPort.getOutputStream();
                    } catch (IOException e) {}
                    try {
                        serialPort.setSerialPortParams(9600,
                            SerialPort.DATABITS_8,
                            SerialPort.STOPBITS_1,
                            SerialPort.PARITY_NONE);
                    } catch (UnsupportedCommOperationException e) {}
                    try {
                        outputStream.write(messageString.getBytes());
                    } catch (IOException e) {}
                }
            }
        }
    }
}

Svelato il mistero!!! Il problema è che, "semplicemente", il readme 
dell'installazione del package è incompleto. Io ho installato la 
j2sdk1.4.2_08 includendo anche il runtime environment. Nel readme c'è 
scritto di andare a copiare i file dll, properties e il jar nella directory 
in cui si è installato il jdk (e quindi la dir j2sdk1.4.2_08 con le sue 
sottodirectory). Però, installando anche il runtime environment, viene 
anche creata una cartella in c:\programmi\Java chiamata j2re1.4.2_08 con 
presenti le stesse sottocartelle, e anche in queste bisogna copiare i 
suddetti file!!! Altrimenti il file di proprietà da java viene cercato 
appunto nella dir dell're e non in quella dell'sdk, scatenando il problema 
rilevato!
Ciao a tutti
LD


Assieme all'sdk c'è anche la jre....

 
Ma non nella stessa directory! E quando la _documentazione sun_ per 
l'installazione di un package *non*  dice che bisogna copiare i file del 
package stesso sia nella directory dell'sdk che in quella della jre, e devi 
scoprirlo te leggendo sul forum della sun dove decine di persone lamentano 
lo stesso problema che ho avuto io non sono molto felice...

 lo stesso problema che ho avuto io non sono molto felice...
Si hai ragione, ma non ho capito perchè devi installare anche jre quando 
si trova gia nell'sdk! questo intendevo! :)

 
Ah ok! Vabbè, nell'installer dell'sdk lascia installare anche il jre, 
quindi... :-) Fatto sta che se lancio l'applicativo dal prompt di dos 
attraverso "java Applicazione" mi vengono rilevate correttamente tutte le 
porte seriali e parallele, se provo a lanciarlo tramite l'ide netBeans 4.1 
non trova nulla (evidentemente perchè va a cercare il file properties in 
un'altra locazione ancora rispetto all'sdk o al jre, è l'unica spiegazione 
che mi viene in mente!). Hai per caso qualche lume in proposito? forse ti 
sembreranno domande banali ma è praticamente la prima volta che programmo 
in modo abbastanza "sostanzioso" e completo con java, all'università come 
al solito ti insegnano tutto e niente... :-/ Grazie mille!
-- 
Due stringhe entrano in un bar. La prima dice al barista: "Barista, dammi 
una birra.u.5n$x5t?*&4ru!2[sACC~ErJ". E la seconda: "Perdoni il mio amico, 
non ha il terminatore NULL"

 
Come non detto, ho risolto tutto!!! :-)
LD