4

最新バージョンのJruby(1.5.1)、Ruby 1.8.7、Java1.6.0_06を使用してカスタムJavaコードを実行しようとしています。クラスファイルとjarメソッドの両方を試しました。やってみると

require 'java'  
require 'path_to_class/myClass

また

require 'java'  
require 'path_to_jar/a_jar.jar  

両方のメソッドを試してみると、myClassやjarファイル内の他のファイルにアクセスできません。Javaクラスをインポートするためのネット上の他のバリエーションは、次のエラーにつながります。

`NameError: cannot load Java class com.package.myClass from C:/jruby-1.5.1/lib/ruby/site_ruby/shared/builtin/javasupport/java.rb:51:in method_missing`

StackOverFlowのソリューションも確認しましたが、同じ結果が得られます。これがより深いレベルでの問題になるのではないかと思います。

4

4 に答える 4

8

'require'の代わりに、'java_import'が必要です。

require 'java'
java_import com.package.MyClass

詳細については、JRuby:import vs include vs java_import vs include_classを参照してください。たとえば、「import」だけでなく「java_import」を使用する理由などです。

于 2011-02-05T01:41:03.447 に答える
1

同じフォルダまたはクラスパスに存在するフォルダにJavaクラスがある場合はcom.mypackage.MyClass、次のようにJRubyスクリプトから呼び出すことができます。

require 'java'
import com.pack.MyClass

myClass = MyClass.new

クラスがjarにある場合は、jarを作成する必要がありますrequire

require 'java'
require '/path/to/myjar.jar'
import com.pack.MyClass

myClass = MyClass.new

myjar.jarがクラスパス上にある場合は、を使用できますrequire 'myjar.jar'

于 2011-02-05T01:22:07.023 に答える
0

やってみましたinclude Javaか?

詳細については、次を参照してください:http: //blogs.oracle.com/coolstuff/entry/using_java_classes_in_jruby

于 2010-07-08T14:42:47.093 に答える
0

だからここに私のために働いたものがあります、私は人々が提案したすべての必要なものを持っていましたが、私が本当に必要としたのは

$CLASSPATH << (Rails.root.to_s + "/path/to/dotClassFolder")

java_importステートメントの前

したがって、ファイルシステムでは、クラスがフォルダ内にあった場合

Rails.root/path/to/dotClassFolder/folder/anotherFolder/MyClass.class

$CLASSPATH << (Rails.root.to_s + "/path/to/dotClassFolder") 次に 含める java_import "folder.anotherFolder.MyClass"

見る

https://github.com/jruby/jruby/wiki/CallingJavaFromJRubyの.classファイルセクションから

于 2014-09-23T19:20:00.497 に答える