mam taki prosty kod:
public static void main(String[] args) throws InterruptedException {
// TODO Auto-generated method stub
try {
Process p = Runtime.getRuntime().exec( "C:\\!a\\bat\\a.bat" );
System.out.println(p);
p.waitFor();
System.out.println("koniec");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
w a.bat mam wpisane cmd, po dwukliku odpala się konsola, po skompilowaniu aplikacji pierwszy system.out wyrzuca mi numer procesu np. java.lang.ProcessImpl@190d11, ale plik a.bat nie uruchamia się, proces wisi na "waitFor()", mogę czekać w nieskończoność. W procesach systemu w managerze zadań tworzy się proces "cmd.exe *32". Jeśli go ubiję ręcznie to wykonuje mi się drugi system.out.
Czego brakuje, żeby plik a.bat wykonał się, tak jak po dwukliku, czy uruchomił polecenie cmd znajdujące się w nim? Docelowo chcę podstawiać pliki pdf, exe i w zasadzie wszystkie inne.