图片进入Jar

时间:2013-12-07 21:12:45

标签: java

在我的游戏中,我有以下代码:

   public Main() {
                p = new Potato();
                addKeyListener(new AL());
                setFocusable(true);
                ImageIcon i = new ImageIcon("C:/test.png");
                img = i.getImage();
                time = new Timer(5, this);
                time.start();
                en = new Enemy(700, 200, "C:/enemy.png");
                en2 = new Enemy(700, 200, "C:/enemy.png");
        }

但是我想将test.png放在包内,但是当我这样做时会产生i片的错误。我想将图像放在jar文件中的文件夹中,但是我会把它放在那里?我主要问的是如何在jar中创建ImageIcons引用文件。

2 个答案:

答案 0 :(得分:0)

您必须提供相对于您的类文件位置的路径。

详细了解使用相对路径:

Java- relative path of text file in main?

relative path in Java

How to define a relative path in java

答案 1 :(得分:0)

ImageIcon(String)需要一个文件引用。当您将资源嵌入到应用程序上下文中(并且它们是Jar)时,他们将无法再访问喜欢的文件,而是需要使用类似getClass().getResource(...)

的内容

例如,假设图像与类在同一个包中,您可以使用...

ImageIcon i = new ImageIcon(getClass().getResource("test.png"));

或者如果图像在另一个包中,您可能需要使用

ImageIcon i = new ImageIcon(getClass().getResource("/path/to /resource/test.png"));