我在决定分发和更新Java应用程序的最佳方法时遇到了一些麻烦。
我的Java应用程序是通过从shell脚本(Bat_To_EXE_Converter)创建的可执行文件在Windows上启动的,并通过Mac的便捷App系统在Mac上启动(基本上只运行shell脚本)。我很乐意更新所有CLASS文件和所有JAR。当我需要修改启动程序的shell脚本时,会出现问题。
我无法在Windows中可靠地重命名正在运行的可执行文件。这基本上是问题的症结所在。
我的shell脚本是否应使用start /b
命令启动另一个升级程序应用程序?通过这种方法,我需要某种形式的IPC来让主程序让升级程序知道它正在关闭。
当我一直坐在这里思考这个问题时,我的狡猾感已经告诉我这是一个已经解决的问题,人们肯定会有意见。但谷歌没有任何答案,所以我转向你,Stack Overflow java大师。 :)
我愿意接受各种形式的答案。我应该使用WebStart或类似的东西来解决这些问题吗?还有其他我应该知道的事情吗?我唯一的选择是让另一个进程运行并进行升级,如果是这样,我如何开始这个其他进程,以便它超出主进程的生命周期?
谢谢!