3
私はプロセスビルダーを実行していて、通常のシェルで動作するコマンドを実行できるように/ etc/profileをソースしようとしています。"source"コマンドを実行しようとしているプロセスビルダーを実行しています
String args[] = {"source", "/etc/profile"};
Process p = new ProcessBuilder(args).start();
InputStream is = p.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
は、残念ながら、それが返されます。
java.io.IOException: Cannot run program "source": java.io.IOException: error=2, No such file or directory
すべてのヘルプは大歓迎します!
私は 'source'コマンドはシェルに組み込まれていると考えているので、あなたは、Javaから直接それを実行することはできません。 'source'ではなく' bash'を実行すると、そのトリックを行うかもしれません。 –
@Wesleyはい 'bash -c 'source/etc/profile''がこのトリックを行います。しかし、環境へのすべての変更は、bashプロセスが終了すると失われます。とにかくあなたのプロセスはそれらを見ないでしょう。 –
標準シェル環境をプロセスに導入する方法はありますか? – Joris