Невозможно запустить исполняемый jar Spring Boot с использованием IBM JRE 1.8

У нас есть приложение Spring Boot, которое построено как исполняемый файл jar и отлично работает как с JRE Oracle, так и с OpenJDK (с использованием версий 1.8).

Однако попытка запустить его с использованием IBM 1.8 JRE приводит к следующей ошибке в командной строке.

Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

Это происходит, если мы выполняем банку (используя ./application.jar) или используя java -jar application.jar

Это привело к тому, что мы изменили упаковку, чтобы не делать исполняемый файл jar, и это позволяет нам запускать приложение, используя java -jar application.jar, Похоже, IBM JRE не нравится скрипт запуска.

Проблема в том, что мы не хотим иметь два метода упаковки для разных сред развертывания, если это возможно.

У кого-нибудь есть опыт того, почему IBM JRE не нравится сценарий в начале файла jar и есть ли какие-либо параметры командной строки, чтобы отключить проверку того, что он выполняет?

1 ответ

Из вашего поста неясно, есть ли у вас проблемы с 1) запуском jar из Linux, например, chmod a+x application.jar и выполнением или 2) запуском через /opt/IBM/java/jre/bin/java -jar application.jar

Для варианта 1) это не очень хорошая идея, поскольку вы явно не выбираете двоичный файл jvm и полагаетесь на ОС, чтобы выбрать один для вас. Читайте о механизме binfmt_misc:

https://en.m.wikipedia.org/wiki/Binfmt_misc

Для варианта 2)-это может быть проблема загрузки класса, пожалуйста, добавьте /opt/IBM/java/jre/bin/java -verbose:class -jar application.jar

и обратитесь к документации здесь: https://www.ibm.com/developerworks/library/j-dclp1/index.html

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