2011-08-15 27 views
8

Zastanawiasz się, czy jest coś lepszego, nowszego, bezpieczniejszego, szybszego itp. Niż Runtime.getRuntime().exec().Czy istnieje alternatywa dla Runtime.getRuntime(). Exec()

Chcę uruchomić inny proces z mojej aplikacji na Linuksie, i to jest jedyny sposób, w jaki wiem. Byłoby miło mieć alternatywę.

+1

Czy jest to w jakiś sposób (szczególnie) niewystarczające? Wygląda na to, że prosisz o duplikowanie funkcjonalności. – kylc

+0

java.lang.Process nie jest nowszy. Dla niektórych celów może być lepiej. – bmargulies

+1

Nie mówię, że jest coś złego w getRuntime.exec, tylko że dowiedziałem się o tym wiele lat temu w Javie 1.3, to jedyny sposób, w jaki wiem i zastanawiałem się, czy istnieje więcej niż jeden sposób na skórze kota, to jest wszystko. – LoudNPossiblyWrong

Odpowiedz

13

Co powiecie na ProcessBuilder?

Trochę więcej:

Wprowadzony w Java 1.5, pozwala uzyskać większą kontrolę na środowisko procesu - ustawić katalog roboczy, pozwalają przekierować strumień błędów do strumienia wejściowego (z java POV) oraz jeszcze kilka rzeczy.

Od Oracle's site:

ProcessBuilder - Nowa klasa ProcessBuilder dostarcza więcej wygodny sposób powoływania podprocesów niż robi Runtime.exec. W szczególności w jednostce ProcessBuilder ułatwia uruchamianie podprocesu ze zmodyfikowanym środowiskiem procesowym (czyli opartym na środowisku procesowym jednostki nadrzędnej , ale z kilkoma zmianami).

+0

... podnosząc brew, drapiąc podbródek w interesie. – LoudNPossiblyWrong

+0

@LoudNPossiblyWrong - wystarczająco fair :) zobacz edit. – MByD

+5

Jeśli mogę zapytać ... czy istnieje sposób wykonywania poleceń z kodu Java bez korzystania z funkcji API ProcessBuilder i Runtime.getRuntime()? – SJunejo

Powiązane problemy