我已经创建了基于Java的卸载程序 - 但仍存在一个问题 - 如何在关闭后删除卸载程序.jar文件(以及相关目录 - 例如... / SomeApplication / uninstaller / uninstaller.jar) ?卸载后保留一些文件并不是很好..
答案 0 :(得分:1)
我通过使用外部实用程序(bat或sh)将卸载程序复制到临时文件夹(%TEMP%
)并从该位置执行程序来解决此问题。
我觉得这是一个有效的实现,因为它会删除永久文件,剩下的唯一文件会随着时间的推移而被删除,或者至少表示为'temp'。
答案 1 :(得分:1)
您可以尝试使用File.deleteOnExit()
,但不会隔离它来处理每个jvm。
另一种选择是编写一个运行器或使用包装器,并在java程序退出后添加一个删除。
<强>更新强>
示例:deinstall.bat
java -jar uninstall.jar
REM check exit status of run
delete jar
示例:smooth作为可执行包装器。 这个包装使用exitOnDelete并将jar复制到temp文件夹。