【发布时间】:2013-01-01 19:27:02
【问题描述】:
我正在开发一个 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
谁能建议我如何做到这一点?
【问题讨论】:
-
@madhairsilence 作为 Java 开发人员,您并不总是可以控制运行您的代码的可执行文件(例如
java.exe) - 通常执行清单等不是一种选择。这是一个合法的问题,一种可能的解决方案是通过cmd运行程序,它知道如何请求权限提升。他并没有要求提升当前进程 - 他只想运行提升的设置,这是一个不同的问题,所以这不是重复的。
标签: java security permissions runtime.exec