参考网址:https://www.cnblogs.com/franson-2016/p/5728280.html
面临问题:
需要在linux系统中run jar文件,运行过程包括文件IO。由于txt文件在windows系统中和在linux中路径不同,所以txt的路径只能用它相对于该project的路径。获取当前路径有如下方法:
1、利用System.getProperty()函数获取当前路径:
System.out.println(System.getProperty("user.dir"));//user.dir指定了当前的路径
![](https://img-blog.csdn.net/20180423203029355?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3o1ODM2MzY3NjI=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
输出:![](https://img-blog.csdn.net/20180423203046794?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3o1ODM2MzY3NjI=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
应用:
![](https://img-blog.csdn.net/20180423203244820?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3o1ODM2MzY3NjI=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
输出:![](https://img-blog.csdn.net/20180423203307280?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3o1ODM2MzY3NjI=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
2. 利用File类提供的方法获取文件路径
getCanonicalPath( ): 得到相对路径;相对路径:“."就表示当前的文件夹,而”..“则表示当前文件夹的上一级文件夹 ;
getAbsolutePath( ): 得到绝对路径;绝对路径: 则不管”.”、“..”,返回当前的路径加上你在new File()时设定的路径 ;
getPath( ): 得到的只是你在new File()时设定的路径 ;
例:当前的路径为 C:/test :
(1)File directory = new File("abc");
directory.getCanonicalPath(); //得到的是C:/test/abc
directory.getAbsolutePath(); //得到的是C:/test/abc
direcotry.getPath(); //得到的是abc
(2)File directory = new File(".");
directory.getCanonicalPath(); //得到的是C:/test
directory.getAbsolutePath(); //得到的是C:/test/.
direcotry.getPath(); //得到的是.
(3)File directory = new File("..");
directory.getCanonicalPath(); //得到的是C:/
directory.getAbsolutePath(); //得到的是C:/test/..
direcotry.getPath(); //得到的是..