Ustawianie środowiska dla ProcessBuilder

Mam dziwny problem z ustawieniem środowiska Linux z Java (1.6); szczególnie zmienna „PATH”.

W skrócie, mam potok do uruchamiania procesów rodzimych, który używajava.lang.ProcessBuilder. Użytkownik może opcjonalnie ustawić zmienne środowiskowe za pomocą aHashMap o nazwieenvironment:

<code>ProcessBuilder pb = new ProcessBuilder(args);
Map<String, String> env = pb.environment();
if (environment != null)
   env.putAll(environment);
Process process = pb.start();
</code>

Theenv zmienna zostanie poprawnie ustawiona, jeśli zrzucę ją do konsoli, z poprawną wartością dla zmiennej PATH. Jednak uruchomienie procesu powoduje rzucenieException:

java.io.IOException: error=2, No such file or directory

Ten sam proces działa poprawnie z identycznymi zmiennymi środowiskowymi w powłoce terminalu. Aby to sprawdzić, uruchomiłem Eclipse AFTER, ustawiając środowisko w terminalu. W tym przypadkuProcessBuilder proces działa poprawnie.

Tak więc musi się zdarzyć, żeProcessBuilder nie używa środowiska, które dla niego ustawiłem, ale zamiast tego obecne środowisko systemowe.

Nie mogę znaleźć satysfakcjonujących odpowiedzi na ten problem online. Być może jest to problem specyficzny dla systemu operacyjnego? Albo czegoś innego, czego mi brakuje?

questionAnswers(6)

yourAnswerToTheQuestion