无法从runnable jar文件中访问文件

时间:2016-04-13 19:54:17

标签: java file jar

有问题的代码很简单

File f = new File("Testfile.txt");
f.createFile();

稍后会写入该文件。此代码位于可执行jar文件中。当它通过“java -jar jarname.jar”执行时,它工作正常,但是当它通过正常的双击启动时,它不起作用。什么都没发生。到目前为止,这似乎是这种情况,因为以某种方式创建的文件并不实际表示jar文件所在目录中的文件,但这只是一个假设。简而言之:如何从通过doubleclick运行的可运行jar创建和编辑文件?

提前致谢

2 个答案:

答案 0 :(得分:0)

  

到目前为止,似乎是这种情况,因为以某种方式创建的文件并不实际表示jar文件所在目录中的文件,但这只是一个假设。

正确。它没有。它表示当前工作目录中的文件。双击时的含义完全取决于双击设置的方式。可能是根目录。

  

简而言之:如何从通过双击运行的可运行jar创建和编辑文件?

为什么呢?为什么要在文件写入之前创建文件?不要这样做。创建文件的时间是在创建文件输出流或编写器时。如果失败,你也会得到一个异常,这比File.createFile()返回的布尔值更有帮助,无论如何你都忽略了它。

答案 1 :(得分:0)

此问题具有不同的性质:文件已创建 - 问题是它们是在执行用户主目录中创建的,您可以轻松地错过它们(并且不想要它们)。解决方案是获取执行的jar文件的当前Locatin,如下所述:How to get the path of a running JAR file?

我希望这有帮助, 干杯!