2014-02-16 2 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(); 
     } 
    } 
} 

Теперь я получаю это исключение.Runtime.getRuntime(). Exec() исключение во время работы exe

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 workfine.

Файл exe представляет собой сборку файла cpp в режиме деблокирования.

+2

Uhm, запятые, вероятно, проблема здесь. И почему вы не используете '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 (команды);