Witam.
Jestem w trakcie pisania aplikacji w Javie. Aplikacja korzysta z portów szeregowych. Wykorzystałem w tym celu bibliotekę javax/comm.jar. Aplikacja uruchamiana z poziomu Eclipse działa prawidłowo. Jednak po eksporcie projektu do pliku jar, program działa prawidłowo do momentu skorzystania z biblioteki. Dostaję wówczas na konsoli taki komunikat:
Exception in thread "Thread-6" java.lang.NoClassDefFoundError: javax/comm/CommPo
rtIdentifier
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
at java.lang.Class.getDeclaredMethod(Unknown Source)
at java.awt.Component.isCoalesceEventsOverriden(Unknown Source)
at java.awt.Component.access$500(Unknown Source)
at java.awt.Component$3.run(Unknown Source)
at java.awt.Component$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Component.checkCoalescing(Unknown Source)
at java.awt.Component.<init>(Unknown Source)
at java.awt.Container.<init>(Unknown Source)
at java.awt.Window.<init>(Unknown Source)
at java.awt.Window.<init>(Unknown Source)
at java.awt.Dialog.<init>(Unknown Source)
at java.awt.Dialog.<init>(Unknown Source)
at javax.swing.JDialog.<init>(Unknown Source)
at communication.PortChooser.<init>(PortChooser.java:104)
at communication.Modem.showPortConectWindow(Modem.java:63)
at communication.Modem.consume(Modem.java:138)
at communication.Modem.run(Modem.java:121)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: javax.comm.CommPortIdentifier
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)
... 21 more
Wypisując na konsoli String java.library.path otrzymuję:
Java library path
C:\WINDOWS\system32;.;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;;C:\Program Files\Java\jre1.6.0_07\bin;C:\DJGPP\bin
a java.class.path wygląda następująco:
aplikacja3.jar
Przed skorzystaniem z biblioteki comm.jar przeniosłem odpowiednie pliki do odpowiednich katalogów, zgdonie z tym co znalzłem na kilku forach, tj.
comm.jar should be placed in:
%JAVA_HOME%/lib
%JAVA_HOME%/jre/lib/ext
win32com.dll should be placed in:
%JAVA_HOME%/bin
%JAVA_HOME%/jre/bin
%windir%System32
javax.comm.properties should be placed in:
%JAVA_HOME%/lib
%JAVA_HOME%/jre/lib
Czy ktoś spotkał się może z podobnym problemem? Z góry dziękuje za pomoc.