我正在开发一个 java 应用程序,我必须从中运行 xyz_setup.exe 安装程序。我尝试了以下代码
String command = "C:\\xyz_setup.exe";
Runtime.getRuntime().exec(command);`
但它抛出以下错误
java.io.IOException: Cannot run program "C:\Users\NewtonApples\Downloads\idman614.exe": CreateProcess error=740, The requested operation requires elevation
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
at java.lang.Runtime.exec(Runtime.java:615)
at java.lang.Runtime.exec(Runtime.java:448)
at java.lang.Runtime.exec(Runtime.java:345)
at upendra.OpenExternalApplication.main(OpenExternalApplication.java:19)
Caused by: java.io.IOException: CreateProcess error=740, The requested operation requires elevation
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.<init>(ProcessImpl.java:189)
at java.lang.ProcessImpl.start(ProcessImpl.java:133)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1021)
... 4 more
谁能建议我怎么做?
最佳答案
Java(或者可能是任何其他直接使用 CreateProcess
系统调用的进程)不适用于需要访问权限提升的可执行文件。
你可以通过 shell 执行你的程序来解决这个问题:
String command = "C:\\setup.exe";
Runtime.getRuntime().exec("cmd /c "+command);
关于java - 如何使用java运行setup.exe文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14392944/