如何设置OpenWebStart的jre版本?

开源项目

1 前言

一个问题,一篇文章,一出故事。
笔者今天使用HP服务器的iLO的Java IRC进行远程连接时候日志遇到如下错误,

[ITW-CORE][2026-09-17 10:42:50.412 CST][ERROR][net.sourceforge.jnlp.runtime.classloader.JNLPClassLoader]
Error while activating jars
java.lang.RuntimeException: java.lang.IllegalAccessException: class net.adoptopenjdk.icedteaweb.jdk89access.JarIndexAccess cannot access class jdk.internal.util.jar.JarIndex (in module java.base) because module java.base does not expor
t jdk.internal.util.jar to unnamed module @7d70d1b1
        at net.adoptopenjdk.icedteaweb.jdk89access.JarIndexAccess.getJarIndex(JarIndexAccess.java:55)
        at net.sourceforge.jnlp.runtime.classloader.JNLPClassLoader.doActivateJars(JNLPClassLoader.java:1279)
        at net.sourceforge.jnlp.runtime.classloader.JNLPClassLoader.lambda$activateJars$3(JNLPClassLoader.java:1179)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at net.sourceforge.jnlp.runtime.classloader.JNLPClassLoader.activateJars(JNLPClassLoader.java:1180)
        at net.sourceforge.jnlp.runtime.classloader.JNLPClassLoader.initializeResources(JNLPClassLoader.java:830)
        at net.sourceforge.jnlp.runtime.classloader.JNLPClassLoader.(JNLPClassLoader.java:352)
        at net.sourceforge.jnlp.runtime.classloader.JNLPClassLoader.createInstance(JNLPClassLoader.java:425)
        at net.sourceforge.jnlp.runtime.classloader.JNLPClassLoader.getInstance(JNLPClassLoader.java:497)
        at net.sourceforge.jnlp.runtime.classloader.JNLPClassLoader.getInstance(JNLPClassLoader.java:470)
        at net.sourceforge.jnlp.Launcher.createApplet(Launcher.java:534)
        at net.sourceforge.jnlp.Launcher.launchApplet(Launcher.java:489)
        at net.sourceforge.jnlp.Launcher.access$400(Launcher.java:72)
        at net.sourceforge.jnlp.Launcher$TgThread.run(Launcher.java:665)
Caused by: java.lang.IllegalAccessException: class net.adoptopenjdk.icedteaweb.jdk89access.JarIndexAccess cannot access class jdk.internal.util.jar.JarIndex (in module java.base) because module java.base does not export jdk.internal.ut
il.jar to unnamed module @7d70d1b1
        at java.base/jdk.internal.reflect.Reflection.newIllegalAccessException(Reflection.java:361)
        at java.base/java.lang.reflect.AccessibleObject.checkAccess(AccessibleObject.java:591)
        at java.base/java.lang.reflect.Method.invoke(Method.java:558)
        at net.adoptopenjdk.icedteaweb.jdk89access.JarIndexAccess.getJarIndexImpl(JarIndexAccess.java:61)
        at net.adoptopenjdk.icedteaweb.jdk89access.JarIndexAccess.getJarIndex(JarIndexAccess.java:53)
        ... 13 more

2 最佳实践

2.1 环境配置

如何安装部署OpenWebStart?

2.2 设置合适的jre版本

2.2.1 安装合适的jre版本

sudo apt install -y openjdk-8-jre

2.2.2 导入安装的jre版本


如上图所示:
单击打开“OpenWebStart Settings”
然后选择【JVM Manager】
单击【Find local】即可自动发现新安装的jre
单击“17.0.20 Ubuntu”旁边的【…】然后单击【Deactivate JVM】
单击【Apply】完成即可完成。
设置完成后,你可以使用如下命令确认配置,

cat ~/.cache/icedtea-web/jvm-cache/cache.json

可见如下配置,

{
  "runtimes": [
    {
      "version": "17.0.20",
      "vendor": "Ubuntu",
      "javaHome": "file:///usr/lib/jvm/java-17-openjdk-amd64/",
      "active": false,
      "os": "LINUX64",
      "managed": false,
      "lastUsage": "2026-09-17T16:38:23.536935"
    },
    {
      "version": "1.8.0_502",
      "vendor": "Private Build",
      "javaHome": "file:///usr/lib/jvm/java-8-openjdk-amd64/",
      "active": true,
      "os": "LINUX64",
      "managed": false,
      "lastUsage": "2026-09-17T16:38:23.567063"
    },
    {
      "version": "1.8.0_502",
      "vendor": "Private Build",
      "javaHome": "file:///usr/lib/jvm/java-8-openjdk-amd64/jre/",
      "active": true,
      "os": "LINUX64",
      "managed": false,
      "lastUsage": "2026-09-17T16:38:23.59099"
    }
  ]
}

2.2.3 强制指定jre版本

vim ~/.config/icedtea-web/deployment.properties

加入如下配置,

ows.jvm.manager.searchLocalAtStartup=true
ows.jvm.manager.versionRange=1.8
ows.jvm.manager.vendor=*
ows.jvm.manager.server.allowFromJnlp=false
ows.jvm.manager.vendor.allowFromJnlp=false
没有评论

发表回复

开源项目
如何安装部署OpenWebStart?

1 基础知识 OpenWebStar是java Web Start技术的开源重实现 OpenWebS …

开源项目
如何安装禅道甘特图插件?

1 前言 笔者需要测试禅道的甘特图插件,于是本文应运而生。 2 最佳实践 2.1 实践环境 如果你没 …

开源项目
如何升级禅道?

1 前言 最近收到升级禅道的任务,于是本文应运而生。 2 最佳实践 2.1 实践环境 如果你没有升级 …