OpenJDK 64 位服务器 VM 警告:已禁用存档的非系统类(resin、Ubuntu、OpenJDK 11)

问题描述 投票:0回答:2

我已经在 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([email protected]/ClassLoader.java:1989)
    at java.lang.System.initPhase3([email protected]/System.java:2069)
Caused by: java.lang.ClassNotFoundException: com.caucho.loader.SystemClassLoader
    at jdk.internal.loader.BuiltinClassLoader.loadClass([email protected]/BuiltinClassLoader.java:581)
    at jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass([email protected]/ClassLoaders.java:178)
    at java.lang.ClassLoader.loadClass([email protected]/ClassLoader.java:521)
    at java.lang.Class.forName0([email protected]/Native Method)
    at java.lang.Class.forName([email protected]/Class.java:398)
    at java.lang.ClassLoader.initSystemClassLoader([email protected]/ClassLoader.java:1975)
    at java.lang.System.initPhase3([email protected]/System.java:2069)

我似乎无法通过谷歌搜索找到任何结果,也找不到任何明显的设置

java.system.class.loader
的东西。

有什么建议吗?谢谢!

java java-11 resin openjdk-11
2个回答
2
投票
在提出此问题后大约 1 个月,

octave 问题跟踪器 中讨论了类似的错误。他们推测添加

-Djava.system.class.loader=XXX
行是作为旧 Sun JVM 的解决方法。现在使用了其他 JVM,它们有一个补丁可以防止设置该属性。

我从 Octave 调用了以下 Java 代码,它在我的情况下有效:

java.lang.System.clearProperty("java.system.class.loader")


0
投票

当Idea没有找到

idea64.vmoptions
文件时,也会出现同样的问题。 原因和解决方案我在另一个answer中描述过。

© www.soinside.com 2019 - 2024. All rights reserved.