2009-01-09 15 views
7

La documentación parece sugerir que para poder importar clases de Java en JRuby, deben estar en un archivo JAR:¿Puedo importar archivos de clase Java en JRuby?

"Para utilizar recursos dentro de un archivo jar de JRuby, el archivo jar debe ser en el classpath o puede hacerlo disponible con el método require " (http://wiki.jruby.org/wiki/Calling_Java_from_JRuby#Require_a_jar_file_to_make_resources_in_the_jar_discoverable_within_JRuby)

¿Es posible importar archivos .class directamente?

Gracias!

Respuesta

8

He conseguido responder a mi propia pregunta :)

Si los archivos de clases se compilan a una ruta relativa del "objetivo", por ejemplo, foo.Bar se encuentra en "blanco/foo/Bar.class", a continuación, hacer lo siguiente:

require 'java' 
require 'target/foo/Bar' 

module Foo 
    include_package 'foo' 
end 

puts Foo::Bar.new 

Y el resultado:

[email protected] 
5

creo que también podría:

require 'java' 
$CLASSPATH << "target" 

y luego

foo.bar.baz.Class.new() # ... 
# or 
java_import 'foo.bar.baz.Class' 
+1

$ CLASSPATH en lugar de $ class_path – fjsj

+0

¡thx !, lo arregló, aplausos reto – reto

Cuestiones relacionadas