我正在编写一个程序来更新它的自我。我得到所有更新工作,我只需要程序重新启动它的自我。这是我目前的代码:
String javaPath = System.getProperty("java.home");
Process process = new ProcessBuilder(javaPath, "-jar", ClientPortal.class.getProtectionDomain().getCodeSource().getLocation().getPath()).start();
我收到了一个错误:
java.io.IOException: Cannot run program "/usr/lib/jvm/java-8-oracle/jre": error=13, Permission denied
我尝试在自己的控制台中运行它,但它被拒绝了。我使用Java路径而不是仅仅使用命令java
的原因是因为像我一样,人们可能安装了多个Java实例并运行了错误的实例。该命令可能根本不可用。
如何以这种方式运行相同的JVM?