【问题标题】:Java:Prepare resources(.png,.txt,.arff) to create a runnable Jar wtih EclipseJava:准备资源(.png,.txt,.arff) 以使用 Eclipse 创建可运行的 Jar
【发布时间】:2015-03-20 15:22:57
【问题描述】:

我在 Eclipse 中有一个 java 项目,我有几个 .arff 文件+1 个 png 文件。

我想编译我的项目并创建一个可运行的 jar。 问题是我找不到最佳解决方案,以便 jar 可以使用 arff 文件运行。 现在我有一个这样的结构:

Nameofproject
|
|
-------src
|        |
|        testpackage
|                      |
|                      |
|                      test1.java
|
 -------resources
|              |
|              | 
|              abc.arff
|              logo.png
|              ...

在我的代码中,我使用调用所需的 arff 文件 inputReader=new BufferedReader(new FileReader(getClass().getResource("/resources/abc.arff").getFile()));

对于 png 文件: logo= new ImageIcon(getClass().getResource("/resources/logo.png"));

你能告诉我创建一个能够正确读取 arff 和 png 文件的可运行 jar 的过程是什么吗?

【问题讨论】:

    标签: java eclipse jar resources


    【解决方案1】:

    试试

    getClass().getClassLoader().getResource("resources/abc.arff");
    

    或者,如果资源在 IDE 中被标记为源文件夹,则

    getClass().getClassLoader().getResource("abc.arff");
    

    更多信息:

    检查您是否已将资源指定为源文件夹。构建 jar 时,请检查资源在其中打包的位置。如果它们在 jar 的根目录中,则应该是

    getClass().getClassLoader().getResource("abc.arff");
    

    否则,它会是这样的:

    getClass().getClassLoader().getResource("path/to/abc.arff");
    

    【讨论】:

    • 不!用 eclipse 不行!如果我制作一个 jar 并尝试它会起作用吗?
    • 应该可以。制作jar的时候可以解压,检查资源是否打包正确。 getClass().getClassLoader().getResource("/") 引用类路径的根目录(即 jar 的根目录),因此只需构建资源的路径,因为它已打包在您的 jar 中。跨度>
    • 嗯,你提到的方法返回一个 URL,但之后我需要使用需要字符串的 FileReader!我应该怎么做才能将其转换为字符串?
    • 忘了强调,资源文件夹应标记为源文件夹,除非它位于现有的源文件夹下。否则,它永远不会在类路径上,也不会打包在 jar 中。
    • 可以使用getClass().getClassLoader().getResourceAsStream()直接获取文件的输入流。
    猜你喜欢
    • 2012-07-02
    • 2014-11-22
    • 1970-01-01
    • 2012-03-22
    • 2011-12-30
    • 2010-12-03
    • 2013-06-30
    • 2016-07-09
    • 2011-01-17
    相关资源
    最近更新 更多