为什么它保持lib/模块锁定?
当我从Java 9应用程序启动任何第三方应用程序时,例如记事本(但您可以采用其他任何内容),然后退出Java应用程序:
import java.io.*;
public class LaunchNotepad {
public static void main(String[] args) throws IOException {
Runtime.getRuntime().exec(new String[] {"C:\\Windows\\notepad.exe"});
}
}
启动的第三方应用程序不断锁定Java 9的文件。这使得具有私有 JRE 的 Java 应用程序很难自行更新,因为原始目录(包含 JRE)无法重命名。以下是ProcessExplorer(Sysinternals)的屏幕截图:lib\modules
这听起来像是一个 Java 9 错误(报告为 JDK-8194734),但是有没有一个变通办法可以在 Windows 上启动应用程序而不锁定 lib\modules
文件,例如,通过使用外部(代理)应用程序,该应用程序只是将传递的参数作为应用程序启动?