【问题标题】:Java - Get file as an input from Project folderJava - 从项目文件夹获取文件作为输入
【发布时间】:2015-02-04 05:35:42
【问题描述】:

我创建了一个简单的自动化脚本来解析我的输入文件。我的输入文件是一个命令行参数。如果我将此输入文件保存在 src 文件夹中,我的程序可以正常工作。

但是,当我通过将程序设置为可执行 jar 文件来运行程序时,我遇到了找不到文件的异常。由于操作团队可以使用以下命令轻松执行可执行的 jar 文件

java -jar parseData.jar Test.txt

异常详情:

Exception in thread "main" java.io.FileNotFoundException: Test.txt (The system cannot find the file specified)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(Unknown Source)
at java.util.Scanner.<init>(Unknown Source)

这样我的运营团队就可以通过简单地给出以下命令来使用它

我已经在我的 main 中尝试了以下代码,但仍然没有运气。

ClassLoader classLoader = Thread.currentThread().getClass().getClassLoader();
URL url = classLoader.getResource(args[0]);
File inputFile = new File(classLoader.getResource(args[0]).getFile());

现在我得到了这个异常的详细信息。

Exception in thread "main" java.lang.NullPointerException
at parseData.main(parseData.java:31)

如果有人这样做,请帮助我。

谢谢

【问题讨论】:

  • 文件 file = new File("file.txt");在没有类加载器的情况下使用它

标签: java file input command-line executable-jar


【解决方案1】:

您不应该尝试阅读classLoader.getResource。这仅在您尝试访问的文件在您的 jar 中时才有效。

改为使用new File(arg[0])

【讨论】:

  • 不,它不起作用。我仍然得到这个异常Exception in thread "main" java.io.FileNotFoundException:
  • 在您运行的目录中是否有一个名为 Test.txt 的文件?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-08
  • 2016-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多