OpenJDK 64位服务器虚拟机警告:已禁用存档的非系统类(resin,Ubuntu,OpenJDK 11)。

6

我已经在Ubuntu服务器上运行了很多年旧版的Caucho Resin(4.0.41)。现在我需要退役该服务器,因此我尝试在新的Ubuntu 18.04.4服务器上安装resin 4.0.64,经过了许多尝试之后,它终于启动了,但最终在早期失败了,并出现以下错误:

OpenJDK 64-Bit Server VM warning: Archived non-system classes are disabled because the java.system.class.loader property is specified (value = "com.caucho.loader.SystemClassLoader"). To use archived non-system classes, this property must be not be set
Error occurred during initialization of VM
java.lang.Error: com.caucho.loader.SystemClassLoader
    at java.lang.ClassLoader.initSystemClassLoader(java.base@11.0.6/ClassLoader.java:1989)
    at java.lang.System.initPhase3(java.base@11.0.6/System.java:2069)
Caused by: java.lang.ClassNotFoundException: com.caucho.loader.SystemClassLoader
    at jdk.internal.loader.BuiltinClassLoader.loadClass(java.base@11.0.6/BuiltinClassLoader.java:581)
    at jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(java.base@11.0.6/ClassLoaders.java:178)
    at java.lang.ClassLoader.loadClass(java.base@11.0.6/ClassLoader.java:521)
    at java.lang.Class.forName0(java.base@11.0.6/Native Method)
    at java.lang.Class.forName(java.base@11.0.6/Class.java:398)
    at java.lang.ClassLoader.initSystemClassLoader(java.base@11.0.6/ClassLoader.java:1975)
    at java.lang.System.initPhase3(java.base@11.0.6/System.java:2069)

我在谷歌上搜索这个问题,但似乎找不到任何结果,也没有找到任何明显的东西来设置 java.system.class.loader

有什么建议吗?谢谢!

2个回答

2
这个问题类似于在一个月后讨论的Octave问题跟踪器中。他们猜测-Djava.system.class.loader=XXX行是为一个旧的Sun JVM添加的解决方法。现在已经使用其他JVM,他们有一个补丁来防止设置该属性。
我从Octave调用了以下Java代码,这在我的情况下有效: java.lang.System.clearProperty("java.system.class.loader")

我最终决定使用Spring Boot重写我的应用程序,因此我无法测试这个问题,但还是感谢你的回答! - Rick

1
当Idea找不到idea64.vmoptions文件时,会出现相同的问题。 我在另一个答案中描述了原因和解决方法。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接