如何将eclipse中的java项目导出到带有图像的jar文件中

时间:2014-11-12 09:10:47

标签: java eclipse

我在询问之前进行了搜索,但这些技术都没有奏效。我试图将图像放在包装下,这也失败了。那么如何从Eclipse中成功导出包含图像的jar文件?

3 个答案:

答案 0 :(得分:1)

MAVEN是我的建议

如果您遵循标准的Maven项目目录结构,那么最好将所有非Java资源放在src / main / resources下。例如,您可以创建子目录图像,以便完整路径为src / main / resources / images。该目录将包含您的所有应用程序映像。

在打包应用程序时,应特别注意正确访问图像。例如,以下函数应该执行您需要的所有操作。

public static Image getImage(final String pathAndFileName) {
    final URL url = Thread.currentThread().getContextClassLoader().getResource(pathAndFileName);
    return Toolkit.getDefaultToolkit().getImage(url);
}

此函数可用作getImage(" images / some-image.png"),以便在图像目录中加载some-image.png文件。

如果需要ImageIcon,那么只需调用new ImageIcon(getImage(" images / some-image.png"))即可。

答案 1 :(得分:0)

在Eclipse中:您可以将图像文件与Java源代码文件一起放置,如果您将其放在其他目录中,请确保将该目录创建为src目录。并创建与源代码包相同的包,并将图像文件复制到那些创建的包。

例如:

  src (source directory)
       ^-------------------com.myproject
                                ^................ Main.java
  resource (source directory)
       ^-------------------com.myproject
                                ^................ logo.png

然后尝试将此项目导出为jar文件。

答案 2 :(得分:0)

您需要将图像放在源文件夹中,并确保该文件夹的设置不会排除您尝试导出的内容。

尝试设置一个干净的Java项目,以确保它与您的eclipse版本一样正常工作,以查看可能缺少的内容。使用项目对话框按照这些说明创建一个新项目:

  1. File> New> Java Project
  2. 在第一个对话步骤Project layout> Configure default...将源文件夹名称更改为src/main/java,这是常规,然后是gradle和maven等工具,因此它是大多数开源项目的项目布局,因此它是一个很好的约定。
  3. 第二个对话步骤Create new source folder为其命名src/main/resources,这又是标准命名。
  4. 创建新项目并将图片拖放到src/main/resources,例如test.jpg然后添加一个java类:

    public class Test {
        public static void main(String[] args) throws Exception {
            System.out.println(Test.class.getClassLoader().getResourceAsStream("test.jpg").available());
        }
    }
    

    在eclipse中运行它以检查它是否为您提供了图像文件大小。然后做File> export> JAR file并将其导出到/tmp/test.jar并使用java -cp /tmp/test.jar运行,以查看它是否为您提供了输出。

    这一切都适合我。返回项目设置并将其与您尝试设置的项目设置进行比较。请注意,有一些选项可以包含/排除按文件名导出的文件,因此可能会出现导出过滤器停止导出文件的情况。我的建议是你将所有代码放在src/main/java下,所有资源(例如src/main/resources下的图像和配置文件)都没有导出过滤器,这就是构建工具(如maven和gradle)的工作方式。