Помогите пожалуйста запустить консоль JRuby из кода Java - PullRequest
0 голосов
/ 02 февраля 2019

Я пытаюсь запустить консоль JRuby из кода Java.Я пробовал JRuby 9.2.5.0 и использовал скрипт jirb_swing из «bin» установки JRuby (после удаления 1-й строки в этом коде).Я сделал этот Java-код, который запускает консоль из скрипта JRuby из моего Linux CenoOS:

import org.jruby.Ruby;   
import org.jruby.RubyInstanceConfig;   
import java.io.*;

public class RubyConsoleStandalone implements Runnable {

final String consolefile="/home/myname/jirb_swing.rb";   
private RubyInstanceConfig config;

public void run() {
  RubyInstanceConfig conf = new RubyInstanceConfig();
  try {
     Ruby rubyRuntime = Ruby.newInstance(conf);
     String jRubyHome = System.getProperty("jruby.home");
     String jRubyVersion = System.getProperty("jruby.version");
     rubyRuntime.evalScriptlet("require 'jruby';");
     rubyRuntime.evalScriptlet("require '"+consolefile+"';");
  } catch (Exception e) {
     e.printStackTrace();
  }

}   }

и запускаю этот код как:

public class Main {
 public static void main(String[] args)  {
         RubyConsoleStandalone console = new RubyConsoleStandalone();
         Thread t = new Thread("JRuby console") {
         public void run() {
         RubyConsoleStandalone console = new RubyConsoleStandalone();
         console.run();
                    };
                    };
                    t.start();
      }
}

Ошибка:

irb / завершение - java.lang.IncompatibleClassChangeError: Реализация класса

Если я удаляю require 'irb / завершение', приглашение консоли никогда не запускается (но всплывает фрейм, но нет запроса навведите команды)

...