Uruchomienie poprzez JAVĘ pliku z dysku

0

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.

0

pokaż a.bat
jeżeli masz wpisane tylko cmd to ten plik się sam nie zakończy bo to tak jakbyś otworzył kalkulator i nic nie robił tylko czekał aż sam się zamknie

0

brakowało paru prametrów - cmd /c start
Runtime.getRuntime().exec("cmd /c start c:\\a.bat");

teraz pytanko, jak dostać się do pliku w sieci? Znajduje się on w lokalizacji 192.168.1.100/a.bat, czy da radę z poziomu Javy wejść w zasób sieciowy?

0

chodziło mi o coś innego i już udało się rozwiązać
Process p = Runtime.getRuntime().exec("cmd /c start file:/\KOMPUTER-W-SIECI\a.bat");

1 użytkowników online, w tym zalogowanych: 0, gości: 1