私はこのビットを試してきたが、そしてJRubyのからコードを呼び出すしようとすると、JRubyのjarファイル自体を返しますロジックが実際にそのジャーから評価/実行されるので、どんな意味がありますか?例えば:
require 'java'
puts self.to_java.get_class().protection_domain().code_source().location().path()
または
require 'java'
class Path
def get_jar_path
self.to_java.get_class().protection_domain().code_source().location().path()
end
end
puts Path.new.get_jar_path
両方あなたが探しているものをある程度役立つことが、明らかにできない、jruby-complete.jar
へのパスを返します。
私はこの仕事を得ることができる唯一の方法(rawr
していますが、を使用している場合、これは容易に適合させることができる)src/java/org/rubyforge/rawr
でJavaクラスを作成することです:
package org.rubyforge.rawr;
public class Path {
public String getJarPath() {
return getClass().getProtectionDomain().getCodeSource().getLocation().getPath();
}
}
その後からこのクラスを呼び出しますJRubyのスクリプト:
require 'java'
java_import 'org.rubyforge.rawr.Path'
puts Path.new.get_jar_path
恐ろしい! _any_ javaコードなしでこれを行う方法はありますか? – Jwosty
便利なJRubyの試行を追加しましたが、期待していたものを実際に返すことができませんでした。 –
申し訳ありませんが、これで十分です!また、 'to_java'は私が探していたものの一部です。 JavaのObjectで定義されたメソッドを呼び出す方法が見つかりませんでした。ありがとう! – Jwosty