Я создал файл jar на Eclipse Oxygen.1a (ОС: Windows 10 Home edition, 64-разрядная версия). JRE моего проекта - jre1.8.0_152 (64-разрядная версия). Когда я запускаю свой файл jar с помощью Java 8 JRE, программа работает отлично, но когда я использую Java 9 JRE, я получаю следующую ошибку:
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUtils
Эта ошибка возникает при выполнении: java -jar myjarfile.jar
с использованием Java 9 JRE.
Я внедрил последнюю версию Apache Commons Lang (в библиотеки проектов добавлен commons-lang3-3.7.jar) и использовал последнюю версию Java 9 Runtime (jre9.0.1 ). На странице Apache указано, что требуется Java 7.0+.
Есть ли проблема несовместимости между Java 9 и библиотеками Apache Commons? Как это решить?
Обновление:
Командная строка содержит (представление "Отладка", щелкните правой кнопкой мыши и выберите "Свойства").
"C:\Program Files\Java\jre1.8.0_152\bin\javaw.exe"
-agentlib:jdwp=transport=dt_socket,suspend=y,address=localhost:50317
-Dfile.encoding=UTF-8
-classpath "C:\Program Files\Java\jre1.8.0_152\lib\resources.jar;
C:\Program Files\Java\jre1.8.0_152\lib\rt.jar;
C:\Program Files\Java\jre1.8.0_152\lib\jsse.jar;
C:\Program Files\Java\jre1.8.0_152\lib\jce.jar;
C:\Program Files\Java\jre1.8.0_152\lib\charsets.jar;
C:\Program Files\Java\jre1.8.0_152\lib\jfr.jar;
C:\Program Files\Java\jre1.8.0_152\lib\ext\access-bridge-64.jar;
C:\Program Files\Java\jre1.8.0_152\lib\ext\cldrdata.jar;
C:\Program Files\Java\jre1.8.0_152\lib\ext\dnsns.jar;
C:\Program Files\Java\jre1.8.0_152\lib\ext\jaccess.jar;
C:\Program Files\Java\jre1.8.0_152\lib\ext\jfxrt.jar;
C:\Program Files\Java\jre1.8.0_152\lib\ext\localedata.jar;
C:\Program Files\Java\jre1.8.0_152\lib\ext\nashorn.jar;
C:\Program Files\Java\jre1.8.0_152\lib\ext\sunec.jar;
C:\Program Files\Java\jre1.8.0_152\lib\ext\sunjce_provider.jar;
C:\Program Files\Java\jre1.8.0_152\lib\ext\sunmscapi.jar;
C:\Program Files\Java\jre1.8.0_152\lib\ext\sunpkcs11.jar;
C:\Program Files\Java\jre1.8.0_152\lib\ext\zipfs.jar;
C:\my Java lab\Eclipse Oxygen\Workspaces\JNotifier\JNotifier\bin;
C:\my Java lab\Eclipse Oxygen\Workspaces\JNotifier\JNotifier\src\libPack\commons-lang3-3.7.jar" libPack.JCostCalculator
Jar-файл, созданный путем экспорта исполняемого JAR-файла с помощью Eclipse с использованием следующих параметров:
Второе обновление: я протестировал свой JAR на другой 64-разрядной системе Windows 10 pro и на Ubuntu 16.04.3 LTS с Java 9 и столкнулся с той же проблемой.
org.apache
пакетов? Вы можете проверить это? Вы можете просто распаковать его как zip-файл. - person ZhekaKozlov   schedule 20.11.2017