需要更好的Java应用程序部署策略

时间:2010-04-01 23:34:59

标签: java swing deployment

我有多个用户使用的各种Java Swing应用程序。我的部署策略是在网络共享上找到.jar文件,用户创建该文件的快捷方式。当用户启动应用程序时,该文件将复制到其计算机并在本地执行。此方法允许单个代码副本并且易于更新。

问题是,如果当时有任何用户正在使用该应用程序,我无法更新网络共享上的文件。

我无法使用Web Start,因为我无权访问用于签署jar的证书。

我当前的解决方法是一个单独的应用程序,它将所需的应用程序复制到用户的本地计算机,启动应用程序,然后启动器退出。从启动器应用程序退出并且用户的应用程序变为可见时,会有几秒钟的延迟。

有人可以建议一个更好的部署方法,我可以轻松更新应用程序的中央副本,其中Windows XP无法保持对文件的锁定吗?

更新: JSmooth方法解决了基本问题。 JSmooth创建的.exe在使用时被锁定,但包含应用程序功能的.jar文件可以更新。

1 个答案:

答案 0 :(得分:7)

可以使用Java Web Start,因为您可以使用自签名证书对文件进行签名。这将为您的用户提供他们可以一劳永逸地接受的警告。

因此,我建议您采用这种方式,因为这是实现您想要的唯一标准Java方法,并且它运行得相当好。使用最新的Java 6更新,您将获得许多新的有用功能。

一条建议:当您发布新版本时,将jar放在一个新位置,以便指向JNLP文件中的jar文件的URL发生变化!这是因为Java Web Start缓存了jar文件,这是我们发现确保缓存准确的最佳方法。


编辑:我相信你也可以使用JSmooth将Java文件包装在一个EXE文件中,该文件透明地提取本地计算机上的各种文件并在那里执行它们。这不应该锁定原始EXE文件。但是,我建议您使用Web Start方法。