2012-05-01 5 views
0

Я создаю настольное приложение JavaFX 2.0, которое необходимо взаимодействовать с кард-ридером через последовательный порт. Поэтому я использую библиотеку RxTx версии 2.1-7r2 32bit.Невозможно найти собственные DLL-файлы RXTX в приложении JavaFX

Чтобы выполнить начальное тестирование/обучение, я построил функциональность RxTx в приложении консоли java и получил эту работу отлично, следуя инструкциям для копирования через собственные DLL и файл jar в мою 32-битную JDK-версию jdk1. 7.0_04.

Затем я создал приложение JavaFX с примитивным интерфейсом и начал переносить код RxTx на этот новый проект. Это приложение JavaFX указывает на тот же 32-битный JDK, который я использовал для своего консольного приложения.

Приложение JavaFX отлично находит файл jar, так как я могу импортировать gnu.io. *, а затем написать код, который правильно распознан NetBeans, а также JavaDocs, автозаполнение и т. Д. К сожалению, при выполнении он возвращает следующие ошибки, которые выглядят подозрительно, как родной библиотеки 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 и нашел пример решения указанной выше ошибки, но он просто упоминает, что вы, вероятно, не имеют библиотеки DLL и JAR файлы в вашем JDK правильно.

Это действительно странно, поскольку я могу получить консольное приложение, используя одни и те же каталоги JDK, отлично работая. Я надеюсь, что я делаю что-то действительно явно неправильно, но я не искал настройки проекта, чтобы заставить меня думать, что я что-то испортил.

Существуют ли какие-либо конкретные настройки проекта JavaFX 2.0 для работы RxTx?

Любые указатели на то, где искать охоту на это, очень ценится !!!

ответ

2

Andre, я портирую приложение Java Swing, которое отлично работает с библиотекой RXTX, в новое приложение JavaFX, без компиляции, но с той же ошибкой во время выполнения. Решение: найдите библиотеку в своем HD (в моем случае /system/library/java/Extensions/RXTXComm.jar), откройте панель свойств проекта, перейдите в библиотеки, выберите параметр кнопки «Скомпилировать» и нажмите «Добавить банку/папку», добавьте RXTXComm.jar в список.

 Смежные вопросы

  • Нет связанных вопросов^_^