我有一个用 java 编写的小型远程增量更新程序 (https://github.com/HitTheSticks/alamode),需要在每次执行我的主要软件(也是用 java 编写)之前启动。在与主软件相同的进程空间中运行更新程序将是一个坏主意,因为它将踩踏由主程序拉入类路径的各种文件。
由于更新程序基本上没有依赖关系,我可以简单地为它生成一个带有安全上下文的启动器并在主程序之前运行它。
但是 java 的 exec() 工具不遵循 fork()/exec() 语义。这意味着对于 exec() 的更新程序,启动程序将导致两个JVM 同时运行,所有日志记录 IO 都通过更新程序过滤。呸。
如何确保当用户单击 [我的开始菜单项] 时,它始终无缝运行 [我的更新程序]->[我的程序]?
我看到“com.install4j.api.launcher.ApplicationLauncher”,但它没有指定调用应用程序是否可以退出而不关闭已启动的应用程序。最好是,我根本不会嵌套应用程序......我希望它们按顺序启动。
哦,如果解决方案至少是可移植的,那就太酷了。