JNLP 扩展无法在 Internet Explorer 中打开
JNLP Extension does not open in Internet Explorer
我在使用 Internet Explorer 打开 *.jnlp 扩展名时遇到问题。该扩展在 Chrome 和 Firefox 中正确打开,让我相信这是 IE 和 可能 网络 server/JNLP 配置的问题。具体来说,Internet Explorer 将 *.jnlp 文件作为 *.xml 脚本打开,而不是下载文件或使用 java Web 启动打开它。
示例:
<?xml version="1.0" encoding="utf-8" ?>
- <!--
JNLP File for Downtime Registration Application
-->
- <jnlp spec="1.7+" codebase="http://foo:8080/bar" href="bar.jnlp">
- <information>
<title>FOO</title>
<vendor>FOO Inc.</vendor>
<description>FOO BAR System</description>
- <shortcut online="false">
<desktop />
<menu submenu="FOO" />
</shortcut>
</information>
- <security>
<all-permissions />
</security>
- <resources>
<j2se version="1.7+" java-vm-args="-client" />
...
</resources>
<application-desc main-class="FooBarMainApp" />
</jnlp>
我已经尝试了以下 "Fixes"/变通方法但无济于事:
- 运行 IE 作为管理员
- 将 URL 添加到兼容性视图
- 正在将 JAVA 设置更改为 "Always allow JNLP/MIME"
- 重置 Internet Explorer 高级设置
- 更改网络服务器 web.xml 文件中的 MIME 扩展名设置
- 更改 IE 设置以始终允许文件下载
更新: 我能够使用下面发布的解决方法解决此问题。但是,如果有人有建议,我正在寻找更永久的修复方法。具体来说,如果可能的话,我正在寻找一种在 business/server 方面解决此问题的方法。如果用户不需要更改任何设置(除了从 IE 切换到其他浏览器),那就太好了。
web.xml 中的 MIME 映射:
<mime-mapping>
<extension>jnlp</extension>
<mime-type>application/x-java-jnlp-file</mime-type>
</mime-mapping>
我最终通过更改 Internet Explorer 中的特定设置解决了这个问题。
工具 -> Internet 选项 -> 安全 -> 自定义级别... -> 杂项 -> 启用 MIME 嗅探 -> 禁用
我花了一些时间才找到这个修复程序,所以我把它包括在这里以防其他人也有这个问题。
PS:这更像是一种解决方法,而不是永久性修复。任何额外的见解都会有所帮助。
Update:结束了将 <%@ page contentType="application/x-java-jnlp-file" %> 添加到 JNLP 文件的开头然后构建 war。本质上,JNLP 会自动启动,但会出现解析错误。一旦将此行从 JNLP 中取出并重新构建 WAR,JNLP 将启动 javawebstart 并且解析错误消失(又名 问题已解决)。真的不知道为什么,但是这个 magic 似乎奏效了。
我将我的 JWS 应用程序与所有已签名的库一起存储在 EAR/WAR 之外。
如果 JWS 应用程序托管在 Apache 网络服务器中,在 httpd.conf 中,您可以按如下方式添加类型:
AddType application/x-java-jnlp-file .jnlp
可以按照以下步骤解决 JNLP 问题:
- 打开 Mozilla Firefox,然后下载 JNLP 扩展。
Mozilla 问我如何打开它,我选择了用 javaws 打开(
C:\Program Files\Java\jre1.8.0_161\lib
)。
- 选择从现在开始应用此选择。
我尝试在 Internet Explorer 上打开它,它自动运行。
或者从下载的文件中右键单击 JNLP 扩展文件,用 javaws 打开(在 C:\Program Files\Java\jre1.8.0_161\lib
上)。我没有尝试这个,但我认为它应该有效。
我在使用 Internet Explorer 打开 *.jnlp 扩展名时遇到问题。该扩展在 Chrome 和 Firefox 中正确打开,让我相信这是 IE 和 可能 网络 server/JNLP 配置的问题。具体来说,Internet Explorer 将 *.jnlp 文件作为 *.xml 脚本打开,而不是下载文件或使用 java Web 启动打开它。
示例:
<?xml version="1.0" encoding="utf-8" ?>
- <!--
JNLP File for Downtime Registration Application
-->
- <jnlp spec="1.7+" codebase="http://foo:8080/bar" href="bar.jnlp">
- <information>
<title>FOO</title>
<vendor>FOO Inc.</vendor>
<description>FOO BAR System</description>
- <shortcut online="false">
<desktop />
<menu submenu="FOO" />
</shortcut>
</information>
- <security>
<all-permissions />
</security>
- <resources>
<j2se version="1.7+" java-vm-args="-client" />
...
</resources>
<application-desc main-class="FooBarMainApp" />
</jnlp>
我已经尝试了以下 "Fixes"/变通方法但无济于事:
- 运行 IE 作为管理员
- 将 URL 添加到兼容性视图
- 正在将 JAVA 设置更改为 "Always allow JNLP/MIME"
- 重置 Internet Explorer 高级设置
- 更改网络服务器 web.xml 文件中的 MIME 扩展名设置
- 更改 IE 设置以始终允许文件下载
更新: 我能够使用下面发布的解决方法解决此问题。但是,如果有人有建议,我正在寻找更永久的修复方法。具体来说,如果可能的话,我正在寻找一种在 business/server 方面解决此问题的方法。如果用户不需要更改任何设置(除了从 IE 切换到其他浏览器),那就太好了。
web.xml 中的 MIME 映射:
<mime-mapping>
<extension>jnlp</extension>
<mime-type>application/x-java-jnlp-file</mime-type>
</mime-mapping>
我最终通过更改 Internet Explorer 中的特定设置解决了这个问题。
工具 -> Internet 选项 -> 安全 -> 自定义级别... -> 杂项 -> 启用 MIME 嗅探 -> 禁用
我花了一些时间才找到这个修复程序,所以我把它包括在这里以防其他人也有这个问题。
PS:这更像是一种解决方法,而不是永久性修复。任何额外的见解都会有所帮助。
Update:结束了将 <%@ page contentType="application/x-java-jnlp-file" %> 添加到 JNLP 文件的开头然后构建 war。本质上,JNLP 会自动启动,但会出现解析错误。一旦将此行从 JNLP 中取出并重新构建 WAR,JNLP 将启动 javawebstart 并且解析错误消失(又名 问题已解决)。真的不知道为什么,但是这个 magic 似乎奏效了。
我将我的 JWS 应用程序与所有已签名的库一起存储在 EAR/WAR 之外。
如果 JWS 应用程序托管在 Apache 网络服务器中,在 httpd.conf 中,您可以按如下方式添加类型:
AddType application/x-java-jnlp-file .jnlp
可以按照以下步骤解决 JNLP 问题:
- 打开 Mozilla Firefox,然后下载 JNLP 扩展。
Mozilla 问我如何打开它,我选择了用 javaws 打开(
C:\Program Files\Java\jre1.8.0_161\lib
)。 - 选择从现在开始应用此选择。
我尝试在 Internet Explorer 上打开它,它自动运行。
或者从下载的文件中右键单击 JNLP 扩展文件,用 javaws 打开(在 C:\Program Files\Java\jre1.8.0_161\lib
上)。我没有尝试这个,但我认为它应该有效。