そこで、jruby インタープリターをライブラリーとしてインポートして、外部の Ruby アプリケーションを実行しました。ただし、何らかの方法で Ruby アプリケーションと対話する必要があります。現在、標準出力に情報を出力し、標準入力でユーザーオプションを要求するルビーアプリケーションがあります。
したがって、Java がユーザーの代わりにオプションの挿入を処理できるようにする場合は、オプションを選択するために Java から stdin に何らかの方法で書き込むことができる方法が必要になります。誰も私がこれを行う方法を知っていますか? または、これを行うより良い方法はありますか?
私は次のようにjrubyを呼び出しています:
String[] newargs = new String[2];
newargs[0] = "-S";
newargs[1] = "path_to_some_rubyfile.rb"
org.jruby.Main jruby = new org.jruby.Main();
ruby.main(newargs);
Ruby アプリは次のようなものを出力します。
How do you feel today?
(1) Happy
(2) Sad
そして、ユーザー入力が 1 または 2 を入力するのを待ちます。ただし、ユーザーに入力させるのではなく、Java にこれらのオプションを入力させたいと思います。