gpt4 book ai didi

java - jar从外部读取文件

转载 作者:行者123 更新时间:2023-12-02 07:08:54 25 4
gpt4 key购买 nike

我已经构建了一个项目。项目必须读取配置文件和数据文件(都是文本文件)。文件应由用户上传,它们可以有不同的名称。一切正常。

我从项目创建了可运行的 jar 并尝试从 cmd 运行它,如下所示: java -jar walksat.jar "params_3.txt", "Test3ArielWCNF-log.wcnf" 。我可以打印 jar 中的参数,它认为它们没问题,但我得到: java.io.FileNotFoundException: params_3.txt, (The system cannot find the file specified)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(Unknown Source)
at java.io.FileInputStream.<init>(Unknown Source)
at mla.project.main.WalkSAT.setGlobalParams(WalkSAT.java:347)
at mla.project.main.WalkSAT.main(WalkSAT.java:60)
我对第二个文件遇到同样的错误。但是,如果我将文件名硬编码(而不是 args[0] 和 args[1]),则 jar 可以读取它们。

jar 文件和其他两个文件位于同一文件夹中。

我在这里缺少什么?

更新 args[0],结果我没看到。

最佳答案

File jarFile = new File(".");

这将为您提供 jar 所在的当前目录的引用。您现在可以使用 jarfile.listFiles() 从中读取文件。假设您应该将配置、数据文件和 jar 文件保存在同一文件夹中

我创建了一个小的主类,您可以将其导出为可运行的 jar 并运行它。它将列出目录中的所有文件。

导入java.io.File;

公开课阅读器{

public static void main(String[] args) {

File jarFile = new File(".");
if(jarFile.isDirectory())
{
File[] allFiles = jarFile.listFiles();
System.out.println("Printing File names");
for (File file : allFiles) {
System.out.println(file.getName());
//code for reading the file goes here..............
}
}

}

}

关于java - jar从外部读取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15775021/

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