从一个jar文件中读取一个文件,这个jar是使用netbeans生成的
Read a file from a jar file, the jar generated using netbeans
我有一个 java 项目,它应该读取外部文件夹中的文件。我在 class 中将文件路径指定为“../FolderName”。但是如果我从这个项目生成一个 jar 文件,它就无法读取该文件。在这种情况下定义文件夹路径的正确方法是什么?
将绝对路径作为程序参数传递给代码 (jar) 的正确方法。
java -jar myjar.jar abs_path
然后您可以在 class 的 main() 方法中访问绝对路径(在 JAR 的 manifest.mf
文件中提到),如下所示:
String filePath = args[0];
你应该使用 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?
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("/classpath/toyourfile");
我有一个 java 项目,它应该读取外部文件夹中的文件。我在 class 中将文件路径指定为“../FolderName”。但是如果我从这个项目生成一个 jar 文件,它就无法读取该文件。在这种情况下定义文件夹路径的正确方法是什么?
将绝对路径作为程序参数传递给代码 (jar) 的正确方法。
java -jar myjar.jar abs_path
然后您可以在 class 的 main() 方法中访问绝对路径(在 JAR 的 manifest.mf
文件中提到),如下所示:
String filePath = args[0];
你应该使用 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?
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("/classpath/toyourfile");