JNI:如何在退出时删除临时 dll 文件
JNI: How to delete temporary dll file on exit
我有一个使用 JNI 的程序。当程序启动时,它会将所需的 dll 文件提取到临时目录中。但是,当我打电话给
deleteOnExit();
关于这个文件,程序退出时不会删除。我知道这是因为 dll 文件仍在使用,所以有替代解决方案吗?请注意,我不介意使用 VBScript 等语言来完成此操作。
我不想永久安装 dll,因为我正在使用它来编写安装程序。
sorry yeah先卸载dll,卸载前不能删除,但最好避免删除和复制dll,以下可能会出错:
- 如果您的应用程序有多个实例运行删除和复制 dll 会相互干扰
- 如果您的应用程序崩溃,dll 将不会被删除
- 一些防病毒程序不会喜欢您的应用程序删除和创建 dll
您也可以将 java 应用程序转换为 .exe,然后将 dll 放在它旁边,而不是使用安装程序。如果 dll 位于(预定义的位置,不确定我是否理解您的意思),您需要将该位置添加到 运行 应用程序之前的 PATH 变量。
我有一个使用 JNI 的程序。当程序启动时,它会将所需的 dll 文件提取到临时目录中。但是,当我打电话给
deleteOnExit();
关于这个文件,程序退出时不会删除。我知道这是因为 dll 文件仍在使用,所以有替代解决方案吗?请注意,我不介意使用 VBScript 等语言来完成此操作。
我不想永久安装 dll,因为我正在使用它来编写安装程序。
sorry yeah先卸载dll,卸载前不能删除,但最好避免删除和复制dll,以下可能会出错:
- 如果您的应用程序有多个实例运行删除和复制 dll 会相互干扰
- 如果您的应用程序崩溃,dll 将不会被删除
- 一些防病毒程序不会喜欢您的应用程序删除和创建 dll
您也可以将 java 应用程序转换为 .exe,然后将 dll 放在它旁边,而不是使用安装程序。如果 dll 位于(预定义的位置,不确定我是否理解您的意思),您需要将该位置添加到 运行 应用程序之前的 PATH 变量。