2016-04-05 59 views
1
how to run a batch file from java using administrator privileges? 

我想要做到这一点,但代码不工作。如何使用管理员权限从java运行批处理文件?

String cmd = "runas /profile /user:Administrator /cmd.exe /C certutil -addstore ROOT E:\\WORK\\UI\\DesktopRecorder\\userdata\\certgen\\X509CA\\ca\\new_ca.crt"; 

Runtime run = Runtime.getRuntime(); 
Process process = run.exec(cmd); 
+1

看看这里:http://stackoverflow.com/questions/19037339/run-java-file-as-administrator-with-full-privileges – DevilsHnd

回答

0

runas需要将其主要输入参数封装在双引号中。踢球是cmd.exe的确实太少,如果你通过它与空格的命令字符串,那么你将不得不使用转义字符为它工作在Windows命令提示符:

runas /profile /user:Administrator "cmd.exe /C \"certutil -addstore ROOT E:\\WORK\\UI\\DesktopRecorder\\userdata\\certgen\\X509CA\\ca\\new_ca.crt\"" 

你会然后还要逃脱整个字符串再次为它在Java代码中工作:

String cmd = "runas /profile /user:Administrator \"cmd.exe /C \\\"certutil -addstore ROOT E:\\\\WORK\\\\UI\\\\DesktopRecorder\\\\userdata\\\\certgen\\\\X509CA\\\\ca\\\\new_ca.crt\\\"\""; 

有时与嵌套调用CMD运行方式,不必转义反斜线\字符,因此,如果这失败,你可能想尝试用两个替换四个反斜杠的序列。祝你好运!

相关问题