有问题的代码很简单
File f = new File("Testfile.txt");
f.createFile();
稍后会写入该文件。此代码位于可执行jar文件中。当它通过“java -jar jarname.jar”执行时,它工作正常,但是当它通过正常的双击启动时,它不起作用。什么都没发生。到目前为止,这似乎是这种情况,因为以某种方式创建的文件并不实际表示jar文件所在目录中的文件,但这只是一个假设。简而言之:如何从通过doubleclick运行的可运行jar创建和编辑文件?
提前致谢
答案 0 :(得分:0)
到目前为止,似乎是这种情况,因为以某种方式创建的文件并不实际表示jar文件所在目录中的文件,但这只是一个假设。
正确。它没有。它表示当前工作目录中的文件。双击时的含义完全取决于双击设置的方式。可能是根目录。
简而言之:如何从通过双击运行的可运行jar创建和编辑文件?
为什么呢?为什么要在文件写入之前创建文件?不要这样做。创建文件的时间是在创建文件输出流或编写器时。如果失败,你也会得到一个异常,这比File.createFile()
返回的布尔值更有帮助,无论如何你都忽略了它。
答案 1 :(得分:0)
此问题具有不同的性质:文件已创建 - 问题是它们是在执行用户主目录中创建的,您可以轻松地错过它们(并且不想要它们)。解决方案是获取执行的jar文件的当前Locatin,如下所述:How to get the path of a running JAR file?
我希望这有帮助, 干杯!