jar从cmd写入文件但不是双击

时间:2013-07-08 01:46:00

标签: java file-io jar

我导出了我的java项目并运行它。起初,当我双击时它没有用,但在一些研究中我遇到了这个解决方案

  

我所做的是创建一个批处理文件jax.bat,说:@java -jar%1,我把它放在我的java / bin文件夹中。然后我将.jar文件与jax.bat关联。

之后问题似乎得到了解决。但是,当我试图在我的朋友计算机上运行它时,我发现从命令提示符运行它会按预期写入文件,但是当它通过双击运行时没有。这是文件编写器的代码

File writeTo = new File("Destinations.txt");
BufferedWriter bw = new BufferedWriter(new FileWriter(writeTo),32768);
//Some lines later
bw.write("The price is $"+ prices.get(lowest)+" travelling to "+ places.get(i)+" on "+ month+"/"+day);
bw.newLine();
          }
bw.close();

编辑:我尝试添加String workingDir ...并在他的计算机上运行它。消息出现,但表示文件在Windows / System32

Edit2:我只是通过从eclipse导出一个可运行的jar来构建我的jar文件。

1 个答案:

答案 0 :(得分:0)

当您通过双击运行JAR时,它可能对工作目录做了一些奇怪的事情。您的文件将写入当前工作目录(因为您没有指定路径),这可能不是您正在查找的位置。你可以做这样的事情来获得当前的工作目录:

// Get the current working directory
String workingDir = System.getProperty("user.dir");
// Display workingDir in a Swing message dialog window
JOptionPane.showMessageDialog(null, workingDir);

Destinations.txt 应出现在workingDir指示的目录中。

另一方面,如果问题只是当你通过双击启动它时程序实际上没有正确运行,那么当消息对话框没有出现时它应该是显而易见的。