2014-02-16 41 views
0
import java.io.IOException; 

public class RunExternalExe { 
    public static void main(String args[]) { 
     try { 
      Process p = Runtime.getRuntime().exec("E:\\aaaa.exe, E:\\aaaaa.msi, E:\\aaaaa.mst"); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.getMessage(); 
      System.out.println("\n\n\n"); 
      e.printStackTrace(); 
     } 
    } 
} 

现在我得到这个异常。运行exe时Runtime.getRuntime().exec()异常

java.io.IOException: Cannot run program "E:\aaaaaa.exe,E:\aaaaaaa.msi,E:\aaaaaa.mst": CreateProcess error=2, The system cannot find the file specified 
    at java.lang.ProcessBuilder.start(Unknown Source) 
    at java.lang.Runtime.exec(Unknown Source) 
    at java.lang.Runtime.exec(Unknown Source) 
    at java.lang.Runtime.exec(Unknown Source) 
    at csvwriter.RunExternalExe.main(RunExternalExe.java:8) 
Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified 
    at java.lang.ProcessImpl.create(Native Method) 
    at java.lang.ProcessImpl.<init>(Unknown Source) 
    at java.lang.ProcessImpl.start(Unknown Source) 
    ... 5 more 

但命令E:\aaaaa.exe,E:\aaaaa.msi,E:\aaaaa.mst worksfine。

exe文件是在发布模式下构建的cpp文件。

+2

呃,这个逗号很可能是这里的问题。你为什么不使用'ProcessBuilder'? – fge

+0

您可以在使用ProcessBuilder运行时发布代码吗? – 1355

+0

是的。它为我工作。现在没有错误显示。谢谢。 :) – 1355

回答

0
   String commands [] = new String [] { 
      "CMD.EXE", 
      "/C", 
      "RUNAS /profile /savecred /user:" 
      + "administrator" 
      + " " + "regedit.exe" 
      }; 

Runtime.getRuntime()。exec(commands);

相关问题