以管理员身份通过java运行dos命令

问题描述:

我有一个启动应用程序的dos命令。我想以管理员身份启动应用程序。我怎么能这样做?以下是我试过的代码。以管理员身份通过java运行dos命令

String arg[]={"C:\\app1.exe", "C:\\app2.exe", "c:\\app3.exe"}; 
String pwd[]={"123","-x","-sf"}; 
String outputfile="c:\\output.xml" 
String command=arg[0]+pwd[0]+arg[1]+pwd[1]+arg[2]+pwd[3]+output; 
Process pr=rt.exec(command); 

我试过命令提示符下的相同命令,它的工作正常。但是当我尝试从java代码运行相同的代码时,它会继续运行而不会产生任何输出。

+1

我不知道,但为了做到这一点,而不攻到Windows API,你可能会运行与海拔Java程序。然后,程序所做的任何事情都会有提升。 – Andy 2011-04-20 10:29:27

+0

我试过使用runas,但如果我给予runas,应用程序“.exe”不会启动。我给了runas/user:macname \\ admin。 – sahana 2011-04-20 11:15:34

+0

在尝试使用java'exec()'之前,您是否从命令提示符处直接在'runas'的'/ env'参数中尝试了它?如果你不放'/ env',runas会假定你想让它使用在'/ user'参数的用户配置文件中设置的环境变量运行,而不是从当前用户/进程设置的环境变量 – eee 2011-04-20 15:50:42

+0

如果我的建议上面仍然不起作用,那么你别无选择,只能将你的应用程序的特权提升到nalroff所建议的最高特权(例如“以管理员身份运行”或使用Windows设置Java应用程序的安全级别“.manifest”文件),以便您从exec()调用的任何内容都将继承与您的应用程序相同的特权 – eee 2011-04-20 15:57:40