2016-11-02 4 views
0

jarby Swingアプリケーションがjarファイルにあります。私のソースコードmain.rbで、私はロードされませんruby​​ jarのソースコードを基準にイメージをロードする方法

img = ImageIcon.new("img/test.png")

として指定されたイメージを持っています。私のパスは、画像への相対パスを指定する方法があります。この

lib/main.rb

lib/img/test.png

のように見えますか?

加えて、私はどのように私はJRubyのでこれを実装し

new javax.swing.ImageIcon(getClass().getResource("myimage.jpeg"))

のgetResource

を使用してJavaでこれを行うのと同等の方法を見つけましたか?

java.net.URL url = getClass().getResource("img/test.png"); 
ImageIcon image = new ImageIcon(url); 

しようとしませんでしたが、ルビーに翻訳、私は信じてそれが何か: - ただ、Javaでのような

答えて

1

は、あなたのファイルには、リソース・インナジャーとして対処する必要があり、ファイルではありませんlike

url = JRuby.runtime.jruby_class_loader.get_resource("/lib/img/test.png") 
image = ImageIcon.new(url) 
+0

これは瓶では機能しなかったようです。 'lib'がjarファイルのルートであると自動的に仮定されていますか? – danynl

+0

しました。 jarファイルから実行しているときに、相対パス(現在のディレクトリまたは一般的なディレクトリ)を実行する方法はわかりません。しかし、ポイントはあなたがファイルシステムを信頼することができないということです。信頼できるのはクラスローダーだけです。 – Amadan

+0

私のイメージは 'test_gemjar.jar'の中にあり、イメージへのパスは' ABCD_gemjar.jar/gems/ABCD-0.1.0/lib/ABCD/img/test.png'です。 get_resourceを使ってこの画像をどのように読み込むのですか? – danynl

関連する問題