0

IRBがあり、それをバックグラウンドに送信して、Javaを使用してIRBのコマンドを評価したいと思います。このようなものを試しましたが[1]、コマンドを認識しません。

[1]

String response = "";
ProcessBuilder pb = new ProcessBuilder(myIrb); //myIrb is a unix script which starts the IRB

try {
  pb.command(myCommand);
  Process proc = pb.start();
  InputStream input = proc.getInputStream();
  int i;
  while((i = input.read()) != -1) {
    char c = (char)i;
    response += c;
  } catch (IOException e) {
    response = e.toString();
  }

System.out.println(response);
4

2 に答える 2

0

Javaから直接評価するのではなく、別のIRBプロセスでルビーを評価したい特別な理由はありますか?

http://kenai.com/projects/jruby/pages/RedBridge

これははるかに簡単です。

于 2012-08-04T22:17:11.487 に答える
0

何かをバックグラウンドで実行したい場合、Rubyスクリプトを直接実行するのではなく、シェルを呼び出して Ruby スクリプトを実行します。

Windows の場合は、「開始」を使用します。Linux の場合は、「&」を使用します。

于 2012-07-31T16:45:06.953 に答える