Java - 从Project文件夹获取文件作为输入

时间:2015-02-04 05:35:42

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

我创建了一个简单的自动脚本来解析我的输入文件。我的输入文件是命令行参数。如果我把这个输入文件保存在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)

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

我在我的主要部分尝试过以下代码,但仍然没有运气。

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)

如果有人以这种方式完成,请帮助我。

由于

1 个答案:

答案 0 :(得分:0)

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

相反,只需使用new File(arg[0])