Проблемы при попытке использовать / usr / share / java в качестве пути к модулю для java-модулей в ubuntu - PullRequest
1 голос
/ 11 мая 2019

Пакеты Ubuntu, похоже, устанавливают библиотеки java в каталог / usr / share / java, но при попытке добавить этот путь в командную строку. Java пытается проверить каждый файл там и, похоже, терпит неудачу. Пример:

$ java --module-path /usr/share/java --list-modules
Error occurred during initialization of boot layer
java.lang.module.FindException: Unable to derive module descriptor for /usr/share/java/groovy.jar
Caused by: java.lang.module.InvalidModuleDescriptorException: Provider class groovy not in module

(обратите внимание, что он также не работает на других файлах, jansi-native.jar - один)

Единственная другая проблема, которую я мог найти, обсуждая что-то похожее на эту проблему, это Tomcat6 libs и / usr / share / java в Ubuntu , но, надеюсь, сейчас есть лучшее решение, чем "стереть все и начать с нуля" «

На всякий случай:

$ java --version
openjdk 11.0.3 2019-04-16
OpenJDK Runtime Environment (build 11.0.3+7-Ubuntu-1ubuntu1)
OpenJDK 64-Bit Server VM (build 11.0.3+7-Ubuntu-1ubuntu1, mixed mode)

Есть ли способ игнорировать неудачные проверки или я не понимаю, как правильно использовать эти модули?

редактирование: Просто чтобы прояснить, проблема не только в groovy, а в проверке пути к Java-модулю. Если он не потерпит неудачу в Groovy, он потерпит неудачу в другом:

$ java --module-path /usr/share/java --list-modules
Error occurred during initialization of boot layer
java.lang.module.FindException: Two versions of module xom found in /usr/share/java (xom.jar and xom-1.2.10.jar)

/usr/share/java$ ls *xom* -la
-rw-r--r-- 1 root root 182373 Jul 26  2013 xom-1.2.10.jar
lrwxrwxrwx 1 root root     14 Jul 26  2013 xom.jar -> xom-1.2.10.jar

Я пытался удалить все пакеты, которые вызывали проблемы (либо из-за ошибки в модулях jar, либо по символическим ссылкам), до этого:

$ java --module-path /usr/share/java --list-modules
Error occurred during initialization of boot layer
java.lang.module.FindException: Unable to derive module descriptor for /usr/share/java/jansi-native-1.8.jar
Caused by: java.lang.IllegalArgumentException: jansi.native: Invalid module name: 'native' is not a Java identifier

К сожалению, я не могу удалить этот пакет, так как он зависит от maven.

...