15

我们正在寻找 Java web start 的替代方案,它可以有效地做同样的事情,只是实现得更好。我们遇到了很大的麻烦。我们有几个办公室的 XP 桌面,都略有不同,到目前为止,只有少数几个没有经过认真的调整就可以工作。问题在于不能很好地使用代理设置(在 Java 控制面板中使用直接连接允许它工作),在设置像“-Xmx”这样的参数时拒绝运行,但在没有设置时运行良好(直到它运行内存不足)和其他我们无法解决的奇怪问题。

web start 的工作方式正是我们想要的,即连接到具有应用程序的服务器、下载任何更改的内容、保留 jar 缓存等。这里的其他团队在他们的 C# 应用程序中使用“clickonce”,它确实有效地同样的事情,但似乎不那么麻烦。

我确信我们不是唯一遇到此问题的人,但四处搜索并没有真正显示出任何替代方案。我们已经研究过编写一个存根本地应用程序,它本质上只是一个 URLClassLoader,它可以通过网络即时加载我们的应用程序,但不幸的是,这对于其他办公室来说太慢了。有人有想法么?

谢谢

更新

万一有人对最终发生的事情感到好奇,我们又给了 webstart 一个月左右的时间,但继续遇到问题,所以我们实现了自己的版本。它基本上只是一个存根,它有一个指向网络服务器的 URL 类加载器。它只有不到 200 行代码,并且已经运行了好几个月。这并不理想,但在有人改进 webstart 之前,我们会坚持使用它。

2018 年更新

所以,几年后,我正在做一个有同样问题的新项目。这次我们使用getdown而不是编写自己的 webstart 实现。我们发现它比 web start 有了很大的改进,而且对我们来说效果很好。

4

5 回答 5

11

我的公司也遇到了 webstart 的痛苦,尤其是 JRE 1.6 更新 19 和 20。我们的问题围绕着混合代码安全警告。(一切都正确签名,问题是间歇性的)

Anyhoo,我偶然发现了三环。我还没有尝试过,但似乎很有希望https://github.com/threerings/getdown/wiki

于 2010-07-22T18:36:26.657 回答
5

我在公司中广泛使用 JWS。只有当您尝试从缓存运行 JWS 并且您的客户端计算机刚刚升级到较新版本的 Java 时,才会出现我在 JWS 中看到的唯一真正问题。应用程序将无法启动,并出现“无法启动”、“找不到缓存文件”错误或类似错误。

有两种方法可以解决这个问题:我要么清除缓存并让他们重新安装应用程序,要么让他们再次从我的网站单击 URL(对我的用户来说最简单)。在这两种情况下,问题都会自行解决。这可以解释为什么这里的一些开发人员从来没有看到这个问题,很可能是因为他们的用户总是点击 URL 而不是安装的启动器。

作为一种解决方法,在我的一些任务关键型应用程序中,我在脚本中使用以下任一项:

java -jar netx.jar -jnlp http://url/to/my/launch.jnlp

或者

javaws http://url/to/my/launch.jnlp

其中 netx 是第三方库。

这不是最漂亮的解决方案,但对我来说,这些工作 100% 的时间。

现在,如果我能弄清楚如何让桌面快捷方式不去地狱......但这是另一次讨论。

于 2011-06-20T22:43:25.250 回答
2

我觉得你所有的问题都很奇怪。我曾在一家使用 JWS 分发其交易软件的公司工作过一段时间,它总是工作得很好。在放弃整个技术之前,您是否考虑过看看非官方的 Java web start FAQ ?

于 2010-07-15T09:46:02.433 回答
2

我们也经常使用 JWS,从 1-6_19 左右开始,它真的开始变得很痛苦。一些应用程序启动 1-6_19 其他没有然后我们更新到 1-6_20 并且它有点相反。然后更新到 1-6_21/2/3/4,问题只会改变。我们可能会放弃。自从甲骨文接管以来,开发团队似乎发生了变化。否则,没有其他解释可以使 JWS 变得更糟。

于 2011-02-23T13:08:52.337 回答
2

GetDown 似乎也很不稳定。我只是尝试了他们宣传的一些游戏网站作为实际示例。他们都未能加载到我的 Firefox 中。也许我的 Java 到 Firefox 的集成是罪魁祸首?我在 JDK 1.6 64 位之后安装了 JRE 7 32 位。

一般来说,Web Start 问题和糟糕的用户体验很多时候都与 Java 在用户机器上的安装方式有关。在 Windows 上,我注意到如果您在新版本之后安装旧版本的 Java(预计两者会共存),我开始在运行小程序和 WS 应用程序时遇到问题。

于 2013-08-01T17:52:22.577 回答