我试图以管理员身份运行命令行命令。
我创建了一个名为devconShort的devcon.exe快捷方式。在快捷方式的属性中,我已选中该框以管理员身份运行。我直接尝试了命令行中的快捷方式,但它仍然有效,但是Windows仍然问我是否允许应用程序对我的计算机进行更改。
但是当我在我的Java代码中运行它时,我收到一个错误,Windows无法找到该文件。
我使用下面的代码来运行快捷方式。还有其他办法吗?
try
{
Runtime rt = Runtime.getRuntime();
Process pr = null;
pr = rt.exec("cmd /c start \"\" \"C:\\devconShort.lnk enable *DEV_4222*\"");
BufferedReader input = new BufferedReader(new InputStreamReader(pr.getInputStream()));
String line = null;
while ((line = input.readLine()) != null)
{
System.out.println(line);
}
int exitVal = pr.waitFor();
System.out.println("Exited with error code " + exitVal);
}
catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
我也尝试了以下
pr = rt.exec("runas /noprofile /user:Administrator \"C:\\devconShort.lnk enable *DEV_4222*\"");
并提供以下消息
答案 0 :(得分:0)
您需要以管理员身份启动CMD窗口 - 请试一试:
try{
Runtime rt = Runtime.getRuntime();
Process pr = null;
pr = rt.exec("runas /noprofile /user:Administrator cmd /c start \"\" \"C:\\devconShort.lnk enable *DEV_4222*\"");
BufferedReader input = new BufferedReader(new InputStreamReader(pr.getInputStream()));
String line = null;
while ((line = input.readLine()) != null)
{
System.out.println(line);
}
int exitVal = pr.waitFor();
System.out.println("Exited with error code " + exitVal);
}
catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}