我们有一个Spring Boot应用程序,该应用程序是作为可执行JAR构建的,并使用Oracle和OpenJDK JRES(使用1.8版本(运行正常。
尝试使用IBM 1.8 JRE运行它,但是在命令行中遇到以下错误。
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
如果我们执行JAR(使用./application.jar
(或使用java -jar application.jar
这导致我们更改包装以不使JAR可执行,这使我们可以使用java -jar application.jar
启动应用程序。因此,IBM JRE似乎不喜欢启动脚本。
问题是,如果可能的话,我们不想使用两种包装方法。
有人有任何经验,为什么IBM JRE不喜欢JAR文件前面的脚本,以及是否有任何命令行选项可以禁用检查其执行的任何操作?
从您的帖子中1(从Linux运行JAR,例如Chmod A X Application.jar和执行或者2(通过/opt/ibm/java/jre/bin/java -jar应用程序运行
对于选项1(这不是一个好主意,因为您不明确选择JVM二进制文件,而是依靠OS为您选择一个。阅读有关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/developererworks/library/j-dclp1/index.html