Java rxtxSerial 64-битный и 32-битный конфликт

Я не использовал Java в смехотворное количество времени, но я пытаюсь собрать воедино JApplet, который читает из последовательного порта для интеграции Arduino. Пока что он отлично работает в NetBeans и в Eclipse, но после сборки развертывание JNLP/JAR/HTML абсолютно отказывается работать. Полученная отсюда rxtxSerial.dll (64-битная версия RXTX) имеет какую-то проблему.

Прямо сейчас выдается следующая ошибка:

java.lang.UnsatisfiedLinkError: C:\Users\Scott\Documents\_School\SYSC_4917\sensor\dist\rxtxSerial.dll: Can't load AMD 64-bit .dll on a IA 32-bit platform
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(Unknown Source)
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at sensor.Sensor.init(Sensor.java:134)
at com.sun.deploy.uitoolkit.impl.awt.AWTAppletAdapter.init(Unknown Source)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

Теперь странно то, что моя версия Java (1.8.0_121) на 100% 64-битная. Это означает, что по какой-то причине Java не может связать 64-битный.dll на 64-битной платформе. Вот вывод из java -version на cmd, если это поможет:

java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)

Все мои переменные среды, PATH и т. Д. Установлены, все файлы находятся в нужном месте, и проект всегда успешно выполняется в NetBeans.

2 ответа

(Опубликовано от имени ОП).

РЕДАКТИРОВАТЬ: РЕШЕНО

Решение, предложенное пользователем Nick Ziebert (спасибо), состояло в том, чтобы удалить и переустановить Java. Я пытался это сделать, но то, что я удалял и переустанавливал, было JDK, а не JRE. Итак, вот что я сделал:

  1. Закройте все программы, использующие Java - NetBeans, Eclipse, откройте апплеты, Firefox, назовите его. Перезагрузите компьютер на всякий случай.

  2. Удалить все каталоги Java в программных файлах под названием jre_1.X.X_XXX (У меня было два по какой-то причине). Не беспокойтесь об удалении, они не будут идти спокойно. Примечание: оставьте JDK в покое.

  3. Повторно загрузите.exe (Offline) Java для Windows-x64 и установите его как обычно.

  4. Перезапустите JNLP, и это сработало.

Любой, кто сталкивается с этой проблемой, проверяет версию rxtxSerial. Если вы попытаетесь запустить 32-битную версию rxtx на 64-битной JRE/JDK, вы увидите аналогичную ошибку.

Независимо от JDK/JRE вам необходимо установить версию x86, если вы планируете использовать 32-битный rxtx, необходимый для последовательной связи. В противном случае вам нужно использовать 64-битный дистрибутив dll.

Повторная установка правильной версии решит проблему, но если вы хотите сэкономить время, просто проверьте, какие версии java установлены, и проверьте а также . Ваш Java-дом может быть проблемой.

Другие вопросы по тегам