import org.jruby.embed.*;
public class RubyTest1 {
private RubyTest1() {
ScriptingContainer container = new ScriptingContainer();
container.put("JavaClass", new JavaClass());
String script = "puts JavaClass.methods";
container.runScriptlet(script);
}
public static void main(String[] args) {
new RubyTest1();
}
}
class JavaClass {
public void javaHelloWorld() {
System.out.println("Hello World!");
}
}
Any way I can run javaHelloWorld from the script? Also please let me know which forum I should post this in.
EDIT: I actually got it to recognize the class itself from within ruby but still can't seem to see the javaHelloWorld method.
import org.jruby.embed.*;
public class RubyTest1 {
private RubyTest1() {
ScriptingContainer container = new ScriptingContainer();
//container.put("JavaClass", new JavaClass());
String script = "require 'java'\n"
+ "java_import 'JavaClass'\n"
+ "puts JavaClass.methods";
container.runScriptlet(script);
}
public static void main(String[] args) {
new RubyTest1();
}
}
class JavaClass {
public static void javaHelloWorld() {
System.out.println("Hello World!");
}
}
EDIT 2: Solved! JavaClass needs to be public, apparently JRuby is implementing Java's visibilities now.
This post has been edited by RevTorA: 08 February 2014 - 12:44 PM

New Topic/Question
Reply


MultiQuote

|