我在 Ubuntu MATE 18.04 上。我尝试的所有 jnlp 应用程序都会出现执行错误。经过检查,Java 中似乎缺少一些库。
于是我把所有东西都删了,重新开始安装,发现 apt-get install icedtea-8-plugin 依赖:
ca-certificates-java default-jre default-jre-headless icedtea-8-plugin
icedtea-netx librhino-java libtagsoup-java openjdk-11-jre
openjdk-11-jre-headless
虽然预计将依赖于 openjdk-8,而不是 11(根据 ubuntu 软件包网站)。我怀疑 jdk-11 不包含为此所需的一些库。
我的猜测是我安装了一些 PPA,它现在会产生这种情况,其中 jdk-11 是比任何 jdk-8 包都更新的选择。那么,我怎样才能实现使用 openjdk-8 而不是 11 安装 icedtea-8 呢?
编辑:这是我尝试从 firefox 启动 jnlp 应用程序时的输出:
Denying permission: ("java.lang.RuntimePermission" "accessClassInPackage.sun.util.resources")
net.sourceforge.jnlp.LaunchException: Fatal: Launch Error: Could not launch JNLP file. The application has not been initialized, for more information execute javaws/browser from the command line and send a bug report. at net.sourceforge.jnlp.Launcher.launchApplication(Launcher.java:582)
...
Running jdk9+ ?
java.lang.ClassNotFoundException: sun/misc/JarIndex
...
java.io.FileNotFoundException: /home/roman/.config/icedtea-web/deployment.properties (No existe el archivo o el directorio) at java.base/java.io.FileInputStream.open0(Native Method)
ClassNotFoundException: sun/misc/JarIndex 是什么让我认为这是由于对 jdk11 的依赖,因为这个类似乎已在 Java 9 中删除。
我尝试只安装 openjdk-8,然后从源代码构建 icedtea。然而,当我完成时,Firefox 没有检测到它(可能缺少某些命令)。
任何想法?
此外,在这些命令的输出下方找到(根据您的答案尝试安装后):
roman@roman-desktop:~$ update-java-alternatives -l
java-1.11.0-openjdk-amd64 1111 /usr/lib/jvm/java-1.11.0-openjdk-amd64
java-1.8.0-openjdk-amd64 1081 /usr/lib/jvm/java-1.8.0-openjdk-amd64
roman@roman-desktop:~$ which javaws
/usr/bin/javaws
经过反复试验,我发现只有一个有用的解决方案——我们需要使用以下命令从以前的 Ubuntu 16.04 LTS 手动安装普通的 OpenJDK 8。通常不推荐,但我们没有其他方法可以得到阳性结果。
因此要安装的命令如下(我们删除现有的 OpenJDK,然后手动安装 deb-packages):
我们还需要使用下面的单个长命令来固定/保存此类包的版本:
然后应用程序将运行
注意:安装 Oracle Java 11 或 12 也无济于事。
在我的系统上,我发现它
javaws
仍在尝试使用 jre-11(它不起作用),因为default-jre-headless
(的依赖关系icedtea-netx
)创建了一个链接(未被 修改update-java-alternatives
)。我必须手动更改该符号以指向 jre-8 版本才能
javaws
再次运行。这显然与 Oracle 的参考有关。我很久以前卸载了Oracle java。(我还没有找到解决方案。)我在使用 Unity 的 Ubuntu 19.04 上。
请参阅以下内容,特别是“选定的 jre”
我能够设置默认的 java-8 或 java-11。
然后通过命令之一正确设置变量 JAVA_HOME
值得检查变量值。
跑步时
我收到了一些警告和回应,包括
netx:无效的 jnlp 文件 /home/phobos/express.jnpl
express.jnpl 是来自https://www.ariscommunity.com/aris-express/download的 ARIS express 建模工具
各自的回应是
现在仍然需要找出 jnpl 文件或我的配置有什么问题。
已解决 - 我使用了错误的文件名。它现在正在工作。
使用当前版本 8u212 运行正常。仍然要使 JAVA_HOME 名称更改永久化。
我发现旧的 Oracle 安装继续设置环境变量:
unset
那些做出来的人javaws
选择了非 Oracle JRE。同样的问题,我只是通过以下方式更改默认java:
我通过在 icedtea 控制面板中设置 jdk8 目录来解决这个问题。我打开控制面板,进入 JVM 设置并在字段中填写:
/usr/lib/jvm/java-8-openjdk-amd64
我正在运行 Ubuntu 18.04,并安装了 jdk11 和 jdk8。通常,java-default 链接到 jdk11,因此 icedtea 会由于某些类被删除而崩溃。
在 Java11 上,
jawaws
不支持 Java 8。(我有 openjdk 但仍然无法使用它)一种方法是使用一些 docker 作为这个:
https ://github.com/rvojcik/firefox-icedtea
它在 docker 容器中运行 firefox 并打开 icedtea 以便从它的 url 使用 KVM 控制台为我制定。
https://openwebstart.com/
我不是一个极客,但由于以前的答案很老,我发布了新的答案
OpenJDK 8/11 对我不起作用,我在 GitHub 中找到了相同问题的上述链接。我能够使用 openwebstart 从实验室实时打开 Jnlp 文件。
注意:我的回答仅与实验室实时 Jnlp 文件有关,这是我第一次使用 JNLP 文件
谢谢