ruby如何在jar中加载相对于源代码的图像

时间:2016-11-02 05:43:31

标签: java ruby swing jruby embedded-resource

我在一个罐子里有一个jruby Swing应用程序。在我的源代码main.rb中,我有一个指定为

的图像

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

不加载。我的路径看起来像这样

lib/main.rb

lib/img/test.png

有没有办法指定图像的相对路径?

另外,我已经找到了使用getResource

在Java中执行此操作的等效方法

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

我如何在jruby中实现这个?

1 个答案:

答案 0 :(得分:1)

就像在Java中一样 - 你的文件不是文件,它必须作为资源inna-jar来处理:

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

没试过,但是翻译成Ruby,我相信它就像

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