2017-06-28 36 views
0

我们有一个Spring Boot应用程序,该应用程序构建为可执行的jar并使用Oracle和OpenJDK JRE(使用1.8版本)运行良好。无法使用IBM JRE启动Spring Boot可执行文件jar 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文件前面的脚本的任何经验,以及是否有任何命令行选项可以禁用它的任何检查操作?

回答

0

从您的文章,目前还不清楚,如果你有运行与 1的问题)从Linux上运行的罐子像一个搭配chmod + X application.jar和执行 或者 2)通过的/ opt/IBM/JAVA/JRE /斌/ java -jar application.jar

对于选项1),这不是一个好主意,因为你没有明确选择jvm二进制文件,并依靠操作系统为你选择一个。阅读关于binfmt_misc机制 :

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

选项2) - 它可能是类加载问题,请加 的/ opt/IBM/JAVA/JRE /斌/ java的-verbose:类罐子应用。罐

并在这里咨询文档:https://www.ibm.com/developerworks/library/j-dclp1/index.html

+0

嗨,问题是与任何一种方法。问题似乎是IBM JRE不喜欢Spring Boot在创建可执行jar时添加的嵌入式启动脚本。如果我们删除脚本,那很好。 有趣的是,当使用额外的命令行参数(可以是任何事后(例如'java -jar application.jar -randomextraparameter') – tonyob

+0

),我们已经使用可执行jar运行了一些成功。要么是IBM Java JRE(J9),要么是Spring Boot项目。如果你在https://spring.io/questions上寻求帮助,最好 –

相关问题