我的代码旨在自动更新我的Jar应用程序。我想从我的应用程序运行带有参数的Jar文件,告诉新版本进行一些更新后的清理,然后退出。我可以使用Desktop.open()启动它,但我不能以这种方式传递任何参数。我也可以launch the java executable using ProcessBuilder但是在Windows上我想使用javaw
,而在其他平台上我会想要使用java
。有没有办法在不必担心当前平台的情况下做到这一点?
答案 0 :(得分:0)
我会考虑从不同的方向接近这个:有一个包装器工具,它创建一个ClassLoader,使用它加载jar,然后执行它。当新版本可用时,告诉包装器使用jar的新实例再次执行此操作,然后关闭。这将让以前的ClassLoader超出范围,让它和从前一个jar文件加载的类被垃圾收集。