Java 通过快捷方式启动可执行jar时目录错误

Java 通过快捷方式启动可执行jar时目录错误,java,jar,directory,shortcut,Java,Jar,Directory,Shortcut,我使用以下方法创建一些配置文件: 字符串路径=System.getPropertyuser.dir writer=new PrintWriterpath+/configTAB2.txt,UTF-8 writer.print10000000000000000000000000000000000000000001000000000000000 writer.close 还是这个方法 writer=新的PrintWriter./configTAB2.txt,UTF-8 writer.print1000

我使用以下方法创建一些配置文件:

字符串路径=System.getPropertyuser.dir

writer=new PrintWriterpath+/configTAB2.txt,UTF-8

writer.print10000000000000000000000000000000000000000001000000000000000

writer.close

还是这个方法

writer=新的PrintWriter./configTAB2.txt,UTF-8

writer.print10000000000000000000000000000000000000000001000000000000000

writer.close

我真正的问题是,我通过双击直接启动jar,文件是在与.jar相同的目录下创建的,但当我在桌面上创建快捷方式时,文件是在桌面上创建的,而不是在与.jar相同的目录下创建的

你有什么解释吗?

System.getPropertyuser.dir;属性返回当前工作目录

user.dir用户的当前工作目录

因此,您可以从我们启动应用程序的位置获得不同的路径


我会使用System.getPropertyuser.home来修复路径,即C:\Users\xxxx。

为什么不使用System.getPropertyuser.home;。无论从何处启动jar,它都只会检查一条路径。为什么不呢?这可能是一个解决方案。但我希望所有文件都位于instal目录的同一目录中。例如U盘或其他。是的,但当我使用桌面上的快捷方式或直接使用文档中文件的双clic时,工作目录无法更改。这真是我的问题,我不明白为什么它会改变。