Я пытаюсь запустить консоль 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 / завершение', приглашение консоли никогда не запускается (но всплывает фрейм, но нет запроса навведите команды)