java中setup_如何使用java运行setup.exe文件

我正在开发一个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.(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);

标签:runtime-exec,java,security,permissions

来源: https://codeday.me/bug/20190901/1782493.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值