Duvida com JRuby

2 respostas
anderson.bonavides

Pessoal desculpa esta incomodando a vocês com uma duvida tão besta mas é que não encontro solução.

Estou com a seguinte classe e o seguinte código em Jruby:

Java

package br.script;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import javax.script.Invocable;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;

public class JRuby {
	public static void main(String[] args) throws ScriptException, NoSuchMethodException{
		ScriptEngineManager scriptEngineManager = new ScriptEngineManager();
		ScriptEngine scriptEngine = scriptEngineManager.getEngineByExtension("rb");
		InputStream is = ClassLoader.getSystemResourceAsStream("helloworld2.rb");
		Reader reader = new InputStreamReader(is);
		scriptEngine.eval(reader);
		Invocable invocableEngine = (Invocable)scriptEngine;
		if (invocableEngine != null) {
		   System.out.println(invocableEngine.invokeFunction("sayHello", "Ruby Guru"));
		}
	}
}
Ruby
def sayHello(name)
   return "Hello " + name + "!"
end

E o seguinte JAR setado ao classpath:

jruby-engine

O código compila mas lança uma exceção em tempo de execução. Alguém poderia dar uma força?

Grato.

2 Respostas

cv1

Qual excecao?

anderson.bonavides

Bem a exceção não acontece mais depois que eu reinstalei a JVM para ver oq acontecia. Porém ainda existe alguns erros:

Exception in thread "main" java.lang.NoSuchMethodError: org.jruby.Ruby.newInstance()Lorg/jruby/Ruby;
	at com.sun.script.jruby.JRubyScriptEngine.init(JRubyScriptEngine.java:474)
	at com.sun.script.jruby.JRubyScriptEngine.<init>(JRubyScriptEngine.java:95)
	at com.sun.script.jruby.JRubyScriptEngineFactory.getScriptEngine(JRubyScriptEngineFactory.java:134)
	at javax.script.ScriptEngineManager.getEngineByExtension(Unknown Source)
	at HelloWorld.main(HelloWorld.java:14)
Criado 6 de maio de 2008
Ultima resposta 8 de mai. de 2008
Respostas 2
Participantes 2