首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IcedTea版本1.8无法打开任何JNLP文件

IcedTea版本1.8无法打开任何JNLP文件
EN

Stack Overflow用户
提问于 2019-06-06 08:47:08
回答 2查看 5.3K关注 0票数 4

目前,我无法在Ubuntu18.04上打开.jnlp文件(TopCoder竞技场)。它给出了一个错误消息。

代码语言:javascript
复制
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)
    at net.sourceforge.jnlp.Launcher$TgThread.run(Launcher.java:945)

早些时候它还很正常。但我想,最近的更新是问题所在。我尝试过这两个来源的解决方案,https://forums.linuxmint.com/viewtopic.php?t=294555和AskUbuntu。到目前为止,我还无法找到启动竞技场的方法。我也尝试过这个线程https://apps.topcoder.com/forums/?module=Thread&threadID=618387&start=0的解决方案,但它们都不起作用。到目前为止,我已经尝试过的解决办法:

1.清除应用程序缓存。

2.将Java 11降级为8

我无法将IcedTea降级到版本1.6,因为版本1.6不在我的系统上工作。

以下是错误消息:

代码语言:javascript
复制
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)
    at net.sourceforge.jnlp.Launcher$TgThread.run(Launcher.java:945)
Caused by: java.lang.reflect.InvocationTargetException
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at net.sourceforge.jnlp.Launcher.launchApplication(Launcher.java:576)
    ... 1 more
Caused by: javax.xml.parsers.FactoryConfigurationError: Provider for class javax.xml.parsers.SAXParserFactory cannot be created
    at java.xml/javax.xml.parsers.FactoryFinder.findServiceProvider(FactoryFinder.java:305)
    at java.xml/javax.xml.parsers.FactoryFinder.find(FactoryFinder.java:261)
    at java.xml/javax.xml.parsers.SAXParserFactory.newInstance(SAXParserFactory.java:147)
    at com.topcoder.client.ui.impl.XMLUIManager.<init>(Unknown Source)
    at com.topcoder.client.ui.UIFactory.getUIManager(Unknown Source)
    at com.topcoder.client.ui.UIFactory.getUIManagerFromResource(Unknown Source)
    at com.topcoder.client.contestApplet.common.LocalPreferences.getAllUIManagers(Unknown Source)
    at com.topcoder.client.contestApplet.ContestApplet.<init>(Unknown Source)
    at com.topcoder.client.contestApplet.runner.generic.main(Unknown Source)
    ... 6 more
Caused by: java.lang.RuntimeException: Provider for class javax.xml.parsers.SAXParserFactory cannot be created
    at java.xml/javax.xml.parsers.FactoryFinder.findServiceProvider(FactoryFinder.java:302)
    ... 14 more
Caused by: java.util.ServiceConfigurationError: javax.xml.parsers.SAXParserFactory: Provider org.apache.xerces.jaxp.SAXParserFactoryImpl not found
    at java.base/java.util.ServiceLoader.fail(ServiceLoader.java:588)
    at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.nextProviderClass(ServiceLoader.java:1211)
    at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNextService(ServiceLoader.java:1220)
    at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator$1.run(ServiceLoader.java:1267)
    at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator$1.run(ServiceLoader.java:1266)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNext(ServiceLoader.java:1269)
    at java.base/java.util.ServiceLoader$2.hasNext(ServiceLoader.java:1299)
    at java.base/java.util.ServiceLoader$3.hasNext(ServiceLoader.java:1384)
    at java.xml/javax.xml.parsers.FactoryFinder$1.run(FactoryFinder.java:287)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.xml/javax.xml.parsers.FactoryFinder.findServiceProvider(FactoryFinder.java:283)
    ... 14 more
EN

回答 2

Stack Overflow用户

发布于 2020-04-19 08:19:04

显然,IcedTea不能使用Java11。有三种选择:

  1. 停止使用JNLP、applet、JWS等等。甲骨文或OpenJDK不再支持它们。Oracle推荐替换许多用例,它正在构建和分发使用jlink创建的可执行文件。
  2. 将评级下调至OpenJDK 8,见@Sankalp1999 1999的回答。 直到2021年4月,OpenJDK 8的Ubuntu软件包才能达到寿命结束,停止安全更新,这才是可行的。您可能会找到一个支持端口安全补丁的Java供应商,但您不太可能通过规范存储库获得它们。
  3. 切换到OpenWebstart
票数 3
EN

Stack Overflow用户

发布于 2020-04-19 06:27:07

我也面临着同样的问题。我首先删除了Java的现有版本(更高),从而解决了这个问题。然后,安装open 8,之后,我安装了冰茶小程序所需的依赖项.

代码语言:javascript
复制
sudo apt purge oracle-java11-* -y
sudo apt purge *openjdk* -y
sudo apt autoremove --purge -y

在那之后,我跟踪了这个线程https://askubuntu.com/questions/1134881/icedtea-8-cannot-run-any-jnlp-application-maybe-due-to-openjdk-11

有些链接在这个线程中不起作用。因此,首先,您需要安装Open 8。

代码语言:javascript
复制
sudo apt-get update
sudo apt-get install openjdk-8-jdk

验证您安装的java的版本。

代码语言:javascript
复制
java -version

如果没有使用正确版本的Java,请使用alternatives命令来切换它

代码语言:javascript
复制
sudo update-alternatives --set java /usr/lib/jvm/jdk1.8.0_version/bin/java

现在,您可以回到我所引用的第一个线程。运行链接。如果它们已经安装,那就不是问题了。

之后,您可以转到applet的目录并运行

代码语言:javascript
复制
javaws ContestAppletProd.jnlp

参考文献:

  1. https://askubuntu.com/questions/1134881/icedtea-8-cannot-run-any-jnlp-application-maybe-due-to-openjdk-11
  2. https://docs.datastax.com/en/jdk-install/doc/jdk-install/installOpenJdkDeb.html
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56473970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档