gpt4 book ai didi

java - 如何将资源文件打包到可运行的 jar 中

转载 作者:行者123 更新时间:2023-12-04 00:18:32 29 4
gpt4 key购买 nike

我已经尝试过很多方法,并遵循了几个在线说明,例如 - Eclipse exported Runnable JAR not showing images但到目前为止,还没有成功。

我有一个非常简单的程序,它读取文本文件 (test.txt) 并将其内容打印到标准输出。我正在使用 Eclipse。这是我所做的-

  • 我将文本文件放入名为“resources”的文件夹中
  • 我右键单击资源文件夹,选择“构建路径”并点击“用作资源文件夹”
  • 在我的代码中,我尝试了两种寻址文件的方法 - (a) 作为“/test.txt”和 (b) 作为“resources/test.txt”。后一种方法在我在 Eclipse 中运行程序时有效。但是,当我将项目导出为可运行的 jar 文件时,这两种方法都不起作用。资源文件夹无法包含在 jar 文件中。

任何帮助将不胜感激。

附录:这是代码。

public class FileIOTest {

public static void main(String[] args) {
String line;
try {
BufferedReader br = new BufferedReader(new FileReader(new File("/test.txt")));
while((line = br.readLine()) != null){
System.out.println(line);
}

br.close();
}
catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}

}

}

最佳答案

您不能通过 FileReader 访问 Jar 文件中的资源,因为它不是文件系统上的文件。 Java 确实有一种访问类路径中资源的机制(包括在 Jars 中):ClassLoader.getResourceAsStream() .你可以将它与你的默认类加载器一起使用:

BufferedReader br = new BufferedReader(new InputStreamReader(
ClassLoader.getSystemClassLoader()
.getResourceAsStream("test.txt")));

注意getResourceAsStream返回null而不是抛出异常,所以你可能想先获取流,检查是否有null,然后要么抛出异常,要么处理它。

您需要将 jar 中的完整路径作为您的路径。

关于java - 如何将资源文件打包到可运行的 jar 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34230104/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com