0

我正在用 Java 构建一个应用程序,随着时间的推移会有一些更新。这意味着客户端必须下载一个新的 .jar 并在可用时使用它。我读到了 jws (java web start),它工作正常。但问题是我的应用程序使用了我创建的协议,它只能连接到我的服务器。它可能没有连接到互联网,我应该无法在该服务器上安装 Web 服务器。那么有没有办法可以在我自己的原型中使用 JNLP?还是我必须自己做这一切??让它下载一个新的jar并删除旧的?

4

2 回答 2

0

如果您的应用程序基于 Web Start,它将自动执行更新。但是,这仅适用于已知协议,例如 HTTP(可能还有 FTP,但从未尝试过)。我认为您不会让 Web Start 使用您自己的协议,但您可以尝试使用自定义 URLConnectionFactory 并为您的协议滚动您自己的连接处理程序。看java.net.URL.setURLStreamHandlerFactory(URLStreamHandlerFactory)

无论如何,在这种情况下,我会使用自定义更新实现,因为您的要求似乎非常具体。由于您的应用程序似乎并不基于具有更新机制的现有框架(例如带有 P2 管理器或 NetBeans 或 Java 插件框架或 Maven 的 Eclipse RCP ......)。

于 2010-09-27T11:53:11.917 回答
0

问题是如何将启动应用程序所需的文件下载到 Java WebStart,如果你只有专有协议,那么在运行 Java WebStart 的机器上没有任何可以与协议通信的东西,所以你无法获得下载的任何东西。

换句话说,您需要一个 Web 服务器来让 Java WebStart 正常工作。

(如果没有服务器,我不认为“种子 JWS 缓存”是一个可行的选择)

但是,您可以轻松地创建一个 Google Application Engine 应用程序,该应用程序可以为您的应用程序提供文件,对于 Java WebStart 来说已经足够了(加上一些允许程序知道在哪里联系您的应用程序的配置)。

于 2010-09-27T11:57:38.010 回答