Puis-je importer des fichiers de classe Java dans JRuby?
-
06-07-2019 - |
Question
La documentation semble suggérer que pour pouvoir importer des classes Java dans JRuby, elles doivent figurer dans un fichier JAR:
"Pour pouvoir utiliser les ressources d'un fichier jar de JRuby, le fichier jar doit figurer sur le chemin d'accès aux classes ou vous pouvez le rendre disponible à l'aide de la méthode require" ( http://wiki.jruby.org/wiki/Calling_Java_from_JRuby#Require_a_jar_file_to_make_resources_in_the_jar_discoverable_within_JRuby )
Est-il possible d'importer directement des fichiers .class?
Merci!
La solution
J'ai réussi à répondre à ma propre question:)
Si vos fichiers de classe sont compilés selon un chemin relatif de "cible", par ex. foo.Bar se trouve dans "target / foo / Bar.class", puis vous procédez comme suit:
require 'java'
require 'target/foo/Bar'
module Foo
include_package 'foo'
end
puts Foo::Bar.new
Et le résultat:
foo.Bar@1582a7c
Autres conseils
Je pense que vous pourriez aussi:
require 'java'
$CLASSPATH << "target"
et ensuite
foo.bar.baz.Class.new() # ...
# or
java_import 'foo.bar.baz.Class'