我在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软件包都是最新的选择。那么,如何实现icedtea-8与openjdk-8一起安装,而不是11?
编辑:这是我尝试从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):
sudo apt purge oracle-java11-* -y
sudo apt purge *openjdk* -y
sudo apt autoremove --purge -y
wget http://archive.ubuntu.com/ubuntu/pool/main/o/openjdk-8/openjdk-8-jre-headless_8u272-b10-0ubuntu1~16.04_amd64.deb
sudo apt install -y ./openjdk-8-jre-headless_8u222-b10-1ubuntu1~16.04.1_amd64.deb
wget http://security.ubuntu.com/ubuntu/pool/main/libp/libpng/libpng12-0_1.2.54-1ubuntu1.1_amd64.deb
sudo apt install -y ./libpng12-0_1.2.54-1ubuntu1.1_amd64.deb
wget http://archive.ubuntu.com/ubuntu/pool/main/o/openjdk-8/openjdk-8-jre_8u272-b10-0ubuntu1~16.04_amd64.deb
sudo apt install -y ./openjdk-8-jre_8u222-b10-1ubuntu1~16.04.1_amd64.deb
wget http://archive.ubuntu.com/ubuntu/pool/universe/i/icedtea-web/icedtea-netx-common_1.6.2-3ubuntu1_all.deb
sudo apt install -y ./icedtea-netx-common_1.6.2-3ubuntu1_all.deb
wget http://archive.ubuntu.com/ubuntu/pool/universe/i/icedtea-web/icedtea-netx_1.6.2-3ubuntu1_amd64.deb
sudo apt install -y ./icedtea-netx_1.6.2-3ubuntu1_amd64.deb
另外,我们需要使用以下单个long命令固定/保持此类软件包的版本:
cat <<EOF | sudo tee /etc/apt/preferences.d/pin-java8
Package: icedtea-netx
Pin: version 1.6.2-3ubuntu1
Pin-Priority: 1337
Package: icedtea-netx-common
Pin: version 1.6.2-3ubuntu1
Pin-Priority: 1337
Package: openjdk-8-jre
Pin: version 8u272-b10-0ubuntu1~16.04
Pin-Priority: 1337
Package: openjdk-8-jre-headless
Pin: version 8u272-b10-0ubuntu1~16.04
Pin-Priority: 1337
EOF
然后应用程序将与
javaws StartProRealTime.jnlp
注意:Oracle Java 11或12的安装也无济于事。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句