【问题标题】:How to make java web start launch automatically without double click on the JNLP [duplicate]如何在不双击 JNLP 的情况下自动启动 java web start [重复]
【发布时间】:2016-07-23 14:17:27
【问题描述】:

我有一个 java 小程序应用程序,我们的客户可以通过我们的网站访问它。由于 Microsoft edge 和 chrome 停止支持 java 插件,我们将小程序转换为通过 JNLP 和 Java Web Start 启动,不幸的是,在这两种浏览器中 JNLP 都下载了,客户应该双击该文件才能启动 Java Web Start。

我们的客户对这种行为感到非常失望,我正在努力寻找解决这个问题的方法。

【问题讨论】:

  • 服务器是否提供了正确的content-type for a JNLP
  • 是的,Andrew....服务器为 JNLP 提供了正确的内容类型,但目前 Java Web Start 不是从 Microsoft Edge 或 Google chrome 开始的,而您为 @987654322 提供的答案@ 在那个时期(2011 年)有效,但现在不工作。
  • 你找到解决方案了吗?我在 2018 年为 chrome 和其他人找到了解决方案,我遇到了这个问题。谢谢。

标签: java google-chrome java-web-start jnlp microsoft-edge


【解决方案1】:

可能的解决方案

1) 更改浏览器中的行为以询问用户在单击JNLP link 时要执行的操作。然后用户可以选择Open with: Java web start launchersave file

edit 在 Firefox 中可以使用,但在 Chrome 中无法使用:请参阅相关的错误报告 10877open issues

2) 向用户提供执行
javaws https://example.com/your_application.jnlp

的脚本

演示示例(应用链接取自 Oracle 教程:Running a Java Web Start Application

javaws https://docs.oracle.com/javase/tutorialJWS/samples/deployment/NotepadJWSProject/Notepad.jnlp

这将打开一个简单的 Java 应用程序。

edit对于无所畏惧的人来说,Chrome 有一个 hacky 解决方案。

  1. 关闭 Chrome,并记住始终复制在后续步骤中更改的文件;-)
  2. 在 Chrome 库中找到 chrome.[so|dll] 字节 jnlp 并将它们修补为例如jnl-
  3. 在您的 Chrome 用户配置文件目录中找到文件 Preferences 并将其修改为 ...

.

"download": {
    ...
    "extensions_to_open": "jnlp",
    ...
},

下次您单击指向 JNLP 文件的链接时,它将自动打开(使用指定用于打开此文件类型的应用程序,通常为 javaws)。

在查看源pref_names.cc 后找到该属性。但是 Chrome 将扩展 jnlp 视为 dangerous,这就是我们需要修补库的原因。

【讨论】:

  • 我该如何应用第一点,关于您提到的示例,它不适用于 oracle 网站。此外,我正在寻找直接运行 Jave Web Start,我不需要客户查看任何更改,只需单击链接,一切都会像他/她运行小程序一样运行。
  • @ManKeer 对不起我的错。没有对有问题的浏览器给予足够的关注。我至少为 Chrome 修改了我的答案。对于 Microsoft Edge,我无能为力,没有它。
  • @ManKeer 对您的客户来说不是一个真正的解决方案,但也许您仍然感兴趣。看看我的答案中的“hacky解决方案”。
  • 非常感谢您的合作,但正如您所说,这完全不是我的客户的解决方案。但真的很感谢你的帮助
  • 如何提取chrome.dll的字节
猜你喜欢
  • 1970-01-01
  • 2011-11-25
  • 1970-01-01
  • 2010-12-27
  • 1970-01-01
  • 2015-08-20
  • 1970-01-01
  • 1970-01-01
  • 2011-11-11
相关资源
最近更新 更多