import java.io.*;
public class File10
{
public static void main(String[] args) 
{
try
{
File file=new File("Text.txt");
PrintWriter out=new PrintWriter(new BufferedWriter(new FileWriter(file)));//在当前路径创建文件输出对象
out.println("1");
out.close();
}
catch(IOException e)
{ } }
}这段代码在windows下和linux下用终端编译运行都没问题,路径正常,比如linux上我在/home/yh/java/io下编译运行就直接在此路径上产生一个Text.txt 的文件,在windows上E:\java\io上编译运行就在此路径上生成文件,但是我用jar命令把这个程序打包成可执行得jar时候,生成文件得路径就开始有变化了,在linux不管我在哪个路径下双击执行这个jar,文件生成得路径总在/home/yh(我的主目录),而在windows下正常,jar在什么路径,文件就生成在哪里。
问题出在哪里?

解决方案 »

  1.   

    同胞啊~~~~~我也正困惑与这个问题。楼主的问题和我如出一辙。我查找的规律来看,当双击运行jar的时候,你获取的当前目录为jar所在目录的父层目录。但是在windows下,以及在linux下用java -jar命令运行的时候都没有问题。这个应该是系统的问题。我也没找到很好的解决办法。目前的办法是,在java下,编写shell脚本,双击脚本来运行程序。这样就可以获得java -jar xxx.jar同样的路径效果。如果楼主找到了根本的原因或者解决办法,还烦请和我交流一下。