【问题标题】:Read a file from a jar file, the jar generated using netbeans从一个jar文件中读取一个文件,这个jar是使用netbeans生成的
【发布时间】:2015-08-03 19:52:33
【问题描述】:

我有一个 java 项目,它应该读取外部文件夹中的文件。我在类中将文件路径指定为“../FolderName”。但是如果我从这个项目生成了一个 jar 文件,它就无法读取该文件。在这种情况下定义文件夹路径的正确方法是什么?

【问题讨论】:

  • 您可以提供一些您目前编写的代码、jar 的名称以及项目或文件系统中的位置。您是否对其他 jars/zips 有问题,或者仅对 netbeans 内置的那些有问题?

标签: java maven netbeans netbeans-7


【解决方案1】:

你应该使用java.lang.Class.getResourceAsStream(String)

它从您的JAR 中读取文件。

例子:

InputStream in = getClass().getResourceAsStream("/classpath/to/my/file");
BufferedReader input = new BufferedReader(new InputStreamReader(in));

一个很好的参考:How to read a file from a jar file?

【讨论】:

    【解决方案2】:

    将绝对路径作为程序参数传递给代码(jar)的正确方法。

    java -jar myjar.jar abs_path
    

    然后您可以在您的类的 main() 方法中访问绝对路径(在 JAR 的 manifest.mf 文件中提到),如下所示:

    String filePath = args[0];
    

    【讨论】:

      【解决方案3】:
      InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("/classpath/toyourfile");
      

      【讨论】:

        猜你喜欢
        • 2015-01-19
        • 2012-10-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-19
        • 1970-01-01
        • 2017-12-21
        • 2018-03-29
        相关资源
        最近更新 更多