2011-01-19 6 views
2

私は外部スクリプトを実行するためにProcessBuilderを取得することに成功しましたが、Javaを外部スクリプトと通信する必要があります。私は、プロセスから入出力ストリームを取得し、それらを使用してデータを送受信する必要があると考えています。私はスクリプトに入力を与えることに最も問題があります。私はスクリプトのprint関数を使ってスクリプトから出力を得ることができるようですが、メインJavaプログラムから入力を登録するスクリプトを取得できないようです。JavaでPython、C、C++、Rubyと対話する

この質問には4つの言語が含まれているため、1つの言語に関する回答のみを投稿すると問題ありません。

答えて

2

方法のgetOutputStream() Processクラスは、プロセスの標準ストリームに接続するJavaで書き込むことができるストリームを返します。あなたは通常、各言語のstdinを読むのと同じように読むことができます(例えば、C++の場合はcin、Cの場合はscanf、Rubyの場合はSTDIN.read、Pythonは知らない)

これは、あなたが間違っていることをより簡単に見られるようにいくつかのコードを投稿することはできますか?

+0

C++、C、Rubyのコマンドをありがとう! raw_inputを使ってPythonを動作させる – Curlystraw

0

JavaをPythonと話している限り、Jythonを考えましたか?

CおよびC++に関しては、標準の考え方はJava Native Interfaceを使用することです。 C/C++と話すことができたら、C/C++を使ってPythonやRubyなど他の言語と話をすることができます。

1

おそらくパイプやソケットのような標準のプロセス間メカニズムを使用するべきです。上

これらの言語のすべてが両方のために使用可能なライブラリを持っており、この戦略は、(Javaの/ルビー、ルビー/ PythonやJavaの/ C、など)あなたのプロセスのいずれか2の間の通信を可能にする

関連する問題