在JavaFX应用程序中找不到RXTX本机DLL

在JavaFX应用程序中找不到RXTX本机DLL,java,windows,netbeans-7,rxtx,Java,Windows,Netbeans 7,Rxtx,我正在构建一个桌面JavaFX2.0应用程序,它需要通过串口与读卡器交互。所以我使用的是RxTx库版本2.1-7r2 32位 为了进行一些初始测试/学习,我在java控制台应用程序中构建了RxTx功能,并按照说明将本机DLL和jar文件复制到我的各种32位JDK版本jdk1.7.004目录中,从而使其运行良好 然后,我创建了一个带有基本UI的JavaFX应用程序,并开始将RxTx代码迁移到这个新项目中。这个JavaFX应用程序指向的是我在控制台应用程序中使用的同一个32位JDK JavaFX应用

我正在构建一个桌面JavaFX2.0应用程序,它需要通过串口与读卡器交互。所以我使用的是RxTx库版本2.1-7r2 32位

为了进行一些初始测试/学习,我在java控制台应用程序中构建了RxTx功能,并按照说明将本机DLL和jar文件复制到我的各种32位JDK版本jdk1.7.004目录中,从而使其运行良好

然后,我创建了一个带有基本UI的JavaFX应用程序,并开始将RxTx代码迁移到这个新项目中。这个JavaFX应用程序指向的是我在控制台应用程序中使用的同一个32位JDK

JavaFX应用程序可以完美地定位jar文件,因为我可以导入gnu.io.*,然后编写NetBeans以及JavaDocs、autocomplete等正确识别的代码。不幸的是,在执行时,它返回了以下错误,这些错误看起来与未定位本机DLL类似:

Exception in Application start method
java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at com.javafx.main.Main.launchApp(Main.java:486)
    at com.javafx.main.Main.main(Main.java:638)
Caused by: java.lang.RuntimeException: Exception in Application start method
    at com.sun.javafx.application.LauncherImpl.launchApplication1(Unknown Source)
    at com.sun.javafx.application.LauncherImpl.access$000(Unknown Source)
    at com.sun.javafx.application.LauncherImpl$1.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.NoClassDefFoundError: gnu/io/CommPortIdentifier
    at testfxscreens.TestFXScreens.setupSerialPort(TestFXScreens.java:186)
    at testfxscreens.TestFXScreens.start(TestFXScreens.java:61)
    at com.sun.javafx.application.LauncherImpl$5.run(Unknown Source)
    at com.sun.javafx.application.PlatformImpl$4.run(Unknown Source)
    at com.sun.javafx.application.PlatformImpl$3.run(Unknown Source)
    at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    at com.sun.glass.ui.win.WinApplication.access$100(Unknown Source)
    at com.sun.glass.ui.win.WinApplication$2$1.run(Unknown Source)
    ... 1 more
Caused by: java.lang.ClassNotFoundException: gnu.io.CommPortIdentifier
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
    ... 9 more
我查看了RxTx主页,找到了上述错误的示例解决方案,但它只是简单地提到您的JDK中可能没有正确的DLL和JAR文件

这真的很奇怪,因为我能够使用相同的JDK目录获得控制台应用程序,工作得非常好。我希望我做了一些明显错误的事情,但我并没有摆弄项目设置,让我觉得我把事情搞砸了

是否有任何特定于JavaFX2.0的项目设置可以使RxTx正常工作


非常感谢任何关于在何处寻找的建议

Andre,我正在将一个使用RXTX库的java Swing应用程序移植到一个新的JavaFX应用程序,没有编译问题,但在运行时会出现相同的错误。 解决方案:在HD中找到库(在我的例子中是/system/library/java/Extensions/RXTXComm.jar),打开项目属性窗格,转到库,选择按钮选项Compile并单击addjar/Folder,将RXTXComm.jar添加到列表中