Salve a tutti....
dopo tanto tempo torno a programmare in java, ho scaricato il jdk 1.5 ma quando vado a compilare un programmino non riesce a trovare import javax.comm.*; suggerimenti??
Salve a tutti....
dopo tanto tempo torno a programmare in java, ho scaricato il jdk 1.5 ma quando vado a compilare un programmino non riesce a trovare import javax.comm.*; suggerimenti??
My SO:WinXP pro/Linux Debian/Gentoo 2006.0
è un package non della core standard di java, quindi devi scaricartelo da qui: http://java.sun.com/products/javacom...ads/index.html
scegliendo quello per il sistema operativo che stai usando.
Quindi, se non presenti, crei i compilati e, se non presente anche lui, il file jar; quindi lo copi in JAVA_HOME/jre/lib/ext
Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)
grazie per il consiglio....lo ho seguito e tutto è andato liscio: ho installato il package extra ed ora riesco a compilare senza che mi dia errori...cmq al momento dell'esecuzione ottengo questa eccezione e non so dove andare a parare...:
grazie ancora...codice:Exception in thread "main" java.lang.NoClassDefFoundError: ScriviSuSeriale (wron g name: dev/javacomm/ScriviSuSeriale) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$100(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClassInternal(Unknown Source)
My SO:WinXP pro/Linux Debian/Gentoo 2006.0
Non riesce a trovare il compilato...
Controlla la CLASSPATH e (se presente) il package che hai dichiarato nei sorgenti.
Folle e' l'uomo che parla alla luna.
Stolto chi non le presta ascolto.
Credo che tu lo stia eseguendo dalla posizione sbagliata; devi posizionarti nella root di dev e da lì eseguire con il seguente comando:Originariamente inviato da leorsid@
grazie per il consiglio....lo ho seguito e tutto è andato liscio: ho installato il package extra ed ora riesco a compilare senza che mi dia errori...cmq al momento dell'esecuzione ottengo questa eccezione e non so dove andare a parare...:
grazie ancora...codice:Exception in thread "main" java.lang.NoClassDefFoundError: ScriviSuSeriale (wron g name: dev/javacomm/ScriviSuSeriale) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$100(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClassInternal(Unknown Source)
Ciao.codice:java dev.javacom.ScriviSuSeriale
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza
allora, premetto che lo sto usando sotto win xp
ho fatto le seguenti operazioni per includere il pacchetto sotto il jdk1.5:
1)copiato win32com.dll sotto C:\Programmi\java\jdk1.5.0_01\bin
2)copiato comm.jar sotto C:\Programmi\java\jdk1.5.0_01\jre\lib\ext\
3)copiato javax.comm.properties sotto C:\Programmi\java\jdk1.5.0_01\jre\lib
4)sono andato in pannello di controllo > prestazioni e manutenzione > sistema > avanzate > variabili di ambiente > path ed ho agiunto la stringa C:\Programmi\java\jdk1.5.0_01\lib\ext\comm.jar
e non funziona ancora.....sbaglio qualcosa??
My SO:WinXP pro/Linux Debian/Gentoo 2006.0
A rischio di sembrare ripetitivo: l'applicazione la esegui dalla posizione corretta? Noto che fai uso dei package e la maggior parte delle volte tale errore è dato proprio da un errata posizione nel richiamare la classe con il main().Originariamente inviato da leorsid@
allora, premetto che lo sto usando sotto win xp
ho fatto le seguenti operazioni per includere il pacchetto sotto il jdk1.5:
1)copiato win32com.dll sotto C:\Programmi\java\jdk1.5.0_01\bin
2)copiato comm.jar sotto C:\Programmi\java\jdk1.5.0_01\jre\lib\ext\
3)copiato javax.comm.properties sotto C:\Programmi\java\jdk1.5.0_01\jre\lib
4)sono andato in pannello di controllo > prestazioni e manutenzione > sistema > avanzate > variabili di ambiente > path ed ho agiunto la stringa C:\Programmi\java\jdk1.5.0_01\lib\ext\comm.jar
e non funziona ancora.....sbaglio qualcosa??
PS: win32com.dll puoi lasciarlo dov'era, che tanto la sua posizione non incide.
Ciao.
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza
Scusa se nn ho capito, ma cosa intendi per "l'applicazione la esegui dalla posizione corretta?"....io compilo ed eseguo il codice in una cartella del mio desktop sotto XP.
Riporto qui anche il codice che tento di eseguire.....
codice:package dev.javacomm; import javax.comm.*; import java.io.*; // Questa classe permette di scrivere sulla porta // seriale il cui nome è specificato nel costruttore // della stessa. // public class ScriviSuSeriale { // Crea un oggetto che scrive il valore della stringa // message sulla porta seriale port. // public ScriviSuSeriale(String port, String message){ try{ // Prendiamo il descrittore della porta scelta. // Nel caso in cui la porta non esista verrà // sollevata una eccezione di tipo // NoSuchPortException. CommPortIdentifier id_porta; id_porta= CommPortIdentifier.getPortIdentifier(port); // Proviamo a prendere l'ownership della porta data. // Nel caso in cui la porta sia già occupata verrà // sollevata una eccezione // di tipo PortInUseException CommPort porta=id_porta.open("ScriviSuSeriale",200); // Otteniamo un riferimento all'OutputStream // della porta OutputStream out=porta.getOutputStream(); // Impostiamo le proprietà di comunicazione nel // seguente modo: // baudrate 9600 // dataBits DATABITS_8 // stopBits DATABITS_1 // parity PARITY_NONE // Nel caso in cui i valori impostati non siano // supportati verrà sollevata una eccezione di // tipo UnsupportedCommOperationException SerialPort porta_seriale=(SerialPort)porta; porta_seriale.setSerialPortParams(9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE); // Procediamo, quindi, alla scrittura del // messaggio sulla porta PrintStream ps= new PrintStream(out); ps.print(message); //Chiudiamo la porta ps.close(); porta.close(); } catch(NoSuchPortException ne){ System.out.println("La porta "+port+" non e' presente"); }catch(PortInUseException pe){ System.out.println("La porta "+port+" e' occupata da"+pe.currentOwner); }catch(UnsupportedCommOperationException ue){ System.out.println("La porta non supporta le proprietà impostate"); }catch(IOException ioe){ System.out.println("Errore di IO"); }// fine try/catch }// fine public static void main(String[] args){ if(args.length<2){ System.out.println("Usage java ScriviSuSeriale <port name> <message>"); } else{ ScriviSuSeriale scrivi= new ScriviSuSeriale(args[0],args[1]); }// fine else }// fine }// fine
My SO:WinXP pro/Linux Debian/Gentoo 2006.0
Mi sa, quindi, che non esegui il programma dalla posizione corretta.
Nota che tu utilizi, come prima riga del tuo codice, questa istruzione:
Questo significa che questa classe deve risiedere all'interno di una cartella javacomm all'interno di una cartella dev.codice:package dev.javacomm;
Questa deve essere la struttura:
Tu devi posizionarti all'interno della cartella che io ho chiamato TuaCartellaQualsiasi (che potrebbe anche essere il desktop) e avviare da lì l'applicazione con questo comando:codice:TuaCartellaqualsiasi | +--- dev | +--- javacomm | +--- ScriviSuSeriale.java | +--- ScriviSuSeriale.class
Ciao.codice:C:\...\TuaCartellaQualsiasi> java dev.javacomm.ScriviSuSeriale
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza
Grazie mille!! ora funziona....cmq per eliminare ogni problema ho levato la dichiarazione del package, inoltre mi sono accorto che l'installazione delle api sotto windows suggerita dalla sun non sono del tutto corrette, riporto qui sotto l'iter che ho trovato su un newsgroup per chi ne ha bisogno:
ciao ciaocodice:Procedura di installazione delle API ------------------------------------ 1) Scaricare dal sito della SUN il file .zip delle API. Per fare questo si deve andare alla seguente URL: http://java.sun.com/products/javacomm/ Andate al paragrafo: "Download API Implementations " ed in particolare selezionate: Version 2.0 for Windows fate click sul pulsante. Seguendo l'iter dovreste arrivare ad una schermata relativa al download del file: javacomm20-win32.zip 2) Al termine del download esplodete il file e copiate i file riportati nelle cartelle indicate (non seguite assolutamente le indicazioni fornite da SUN per l'installazione, se lo fate perderete come me e molti altri, intere giornate di incavolature e ore passate a girare in Internet): il file win32com.dll va copiato in: C:\WINDOWS\SYSTEM32 C:\Programmi\Java\j2re1.4.1_02\bin C:\j2sdk1.4.1_02\jre\bin il file javax.comm.properties va copiato in: C:\Programmi\java\j2re1.4.1_02\lib C:\j2sdk1.4.1_02\jre\lib il file comm.jar va copiato in: C:\j2sdk1.4.1_02\jre\lib\ext 3) A questo punto aprite con il notepad il file autoexec.bat e scrivete: SET PATH=%PATH%;c:\j2sdk1.4.1_02\bin SET CLASSPATH=.;C:\j2sdk1.4.1_02\jre\lib\ext\comm.jar attenzione a copiare esattamente il CLASSPATH come scritto, con il . all'inizio (fate copia-incolla per sicurezza, anche qua ci sono cascato e sono volati via i quarti d'ora per capire cosa non funzionava). Salvate il file autoexec.bat e riavviate il PC per rendere attive le nuove impostazioni. 4) per verificare se l'operazione di installazione è andata a buon fine, andate nella cartella dove avete esploso il file delle communication API e copiatevi, ad esempio in C:\temp, tutto il contenuto della cartella BlackBox che trovate al percorso commapi\samples\BlackBox (ottenuto esplodendo il file javacomm20-win32.zip). Aprite il prompt del DOS ed andate in C:\Temp. A questo punto scrivete: java BlackBox ... fatemi sapere che cosa succede ;-))))) Se ottenete un messaggio del tipo: serial port not found! è probabile che abbiate dimenticato di copiare qualche file oppure che io mi sia dimenticato di scrivere qcsa (il post l'ho ricontrollato alcune volte, ma data l'ora ed il mal di testa non assicuro niente ;-) ). In ogni caso, visto le tribolazioni che ho passato, sono qua per aiutare, per quanto mi è possibile, tutti coloro che vorranno cimentarsi in questa impresa.
My SO:WinXP pro/Linux Debian/Gentoo 2006.0