Java 便携式JAR中的处理路径

Java 便携式JAR中的处理路径,java,Java,我已经编写了一个java程序,其中包含不同的类,在这个过程中,它会生成很多文件(比如txt文件),然后读取这些文件并对其进行操作。我已经把这个项目做成了一个JAR文件,在这个文件中我可以从命令运行它,因为JAR在同一个目录中。 但是,我想在路径不相同的远程服务器上运行这个JAR文件,因此它会生成错误,因为在我的项目中,它应该从/Programs/Folder/这里读取一个文件,而在服务器上,这是不可能发生的,因为没有/Programs/Folder。。。目录我是否必须根据我想放罐子的新位置更改程

我已经编写了一个java程序,其中包含不同的类,在这个过程中,它会生成很多文件(比如txt文件),然后读取这些文件并对其进行操作。我已经把这个项目做成了一个JAR文件,在这个文件中我可以从命令运行它,因为JAR在同一个目录中。 但是,我想在路径不相同的远程服务器上运行这个JAR文件,因此它会生成错误,因为在我的项目中,它应该从/Programs/Folder/这里读取一个文件,而在服务器上,这是不可能发生的,因为没有/Programs/Folder。。。目录我是否必须根据我想放罐子的新位置更改程序中的所有路径,还是有其他方法? 谢谢你的帮助。
最好的祝愿

我认为最好的方法是将文件所在的目录名作为参数传递给java命令行


从main

中的参数args中读取它。最简单也是最好的解决方案是将项目中文件中的所有路径更改为相对路径。您也可以简单地将文件存储的目录传递到
String args[]作为参数

我更喜欢使用相对路径,然后使用类加载器读取相对路径。试试它。

为什么不通过参数读取路径?也考虑使用相对路径。你使用相对路径还是绝对路径?谢谢你的回答。但请你举个例子好吗。恐怕我无法理解,即使使用file.getAbsolutePath()。例如,我的代码文件位于/Programs/Folder1/folder2/.java中,其中生成、写入和读取的文件位于/Programs/Folder1/Folder3/.txt中,我需要将整个项目移动到另一个文件夹名称非常不同的服务器上