Ошибка:
java.lang.reflect.InaccessibleObjectException: невозможно сделать защищенный окончательный java.lang.Class java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain) выдает Java Доступен .lang.ClassFormatError: модуль java.base не «открывает java.lang» для безымянного модуля @7225790e
Поэтому я пытаюсь передать --add -opens java.base/java.lang=ALL-UNNAMED исправление для JVM, на котором работает nexus-iq-cli.jar.
К сожалению, да не иметь полного контроля над командой java -jar ..., которая выполняется в CI, в противном случае я бы просто явно передал --add-opens java.base/java.lang=ALL-UNNAMED. Из-за этого ограничения я пытаюсь использовать другие способы установки глобальных параметров аргументов JVM. Один из способов сделать это, который пришел мне в голову, — использовать переменную среды _JAVA_OPTIONS.
Меня удивляет то, что Java завершает работу с ошибкой:
Нераспознанный параметр: --add-opens
Когда я пытаюсь передать его следующим образом:
Код: Выделить всё
# with unix shell you can set value to some variable and execute something in one line
_JAVA_OPTIONS='--add-opens java.base/java.lang=ALL-UNNAMED' java
Код: Выделить всё
java --add-opens java.base/java.lang=ALL-UNNAMED
Подробнее здесь: https://stackoverflow.com/questions/747 ... va-options