路径基准
系统参数user.dir
一般是JVM启动时的用户文件夹
Eclipse中运行一个类的main函数,JVM在项目根目录启动,相对的路径基准是项目的根目录
假设在workspace下有个test项目,包名sample,类名Test.java
1 | class Test { |
基准
- 类和加载器的路径基准是class文件所在的目录
- 资源路径基准是user.dir设定的目录
基准选择
- user.dir随运行环境变化,如果访问项目内文件sample/Test.java,在IDE内运行没问题,然而打包后放在别的路径就会出错,因为参照的位置变化了
- ClassLoader获取路径比较稳妥Test.class.getResourceAsStream("/sample/Test.java")可以在正确的路径找到
一分也是爱~
版权声明
This site by Linest is licensed under a Creative Commons BY-NC-ND 4.0 International License.
由Linest创作并维护的博客采用创作共用保留署名-非商业-禁止演绎4.0国际许可证。
本文永久链接:http://linest.github.io/2017/07/10/java-relative-path/