IDEA相对路径
System.getProperty("user.dir")可以返回当前工程根目录的绝对路径
user.home:用户的主目录
https://blog.csdn.net/qq_35873847/article/details/77966921
public static String getProperty(String key) {
checkKey(key);
SecurityManager sm = getSecurityManager();
if (sm != null) {
sm.checkPropertyAccess(key);
}
return props.getProperty(key);
}
// 本地方法,用于初始化props属性
private static native Properties initProperties(Properties props);
从上面源码中我们可以看出,getProperty方法是从System类的一个静态属性props里面获取相应的值,而props属性是通过本地方法initProperties来赋予初值的。也就是说,在JVM启动时通过执行本地方法自动初始化了这个系统属性。好在jdk的文档注释上向我们说明了JVM确保有哪些属性,我们通过下表列出:
属性名说明示例值java.versionJava版本号11.0.5java.version.dateJava版本日期2019-10-15java.vendorJava供应商指定字符串Oracle Corporationjava.vendor.urlJava供应商URLhttp://java.oracle.com/java.vendor.versionJava供应商版本18.9java.homeJava安装根目录/usr/lib/jvm/jdk-11.0.5java.class.versionJava 类文件版本号55.0java.class.pathJava 类路径太长,这里省略os.name操作系统名Linuxos.arch操作系统架构amd64os.version操作系统版本5.0.0-37-genericfile.separator文件分隔符/path.separator路径分隔符:line.separator换行符\nuser.name用户账号lhing17user.home用户根目录/home/lhing17user.dir用户当前工作目录/home/lhing17/IdeaProjects/rocketDownloader
上表中的示例值是在我个人电脑上通过测试类输出的结果。我们可以清楚地看到,"user.dir"是指用户当前工作目录。如果你是在IDE中运行项目,这个目录就是你当前项目所在的根目录。除了"user.dir"外,这里还提供了其他一些有用的属性,比如"java.home"、"user.home"等。JVM(指java虚拟机)保证上表中的属性是有值的,在项目中我们可以放心通过System.getProperty(propertyName)的方式去获取,不必担心发生空指针异常。
我们还可以通过System.setProperty(propertyName, propertyValue)的方式去修改这些属性,或者自定义一些新的属性。但是,java官方文档中明确提醒我们,修改这些系统属性可能造成不可预料的副作用,通常情况下我们不应该去修改这些属性。
上一篇: 问一个mysql的锁的问题?mysql同时写数据会怎么样?
下一篇: IDEA相对路径问题
推荐阅读
-
IDEA搭建Springboot+SpringMVC+Mybatis+Mysql(详细、易懂)
-
最新Maven及Tomcat配置(IDEA版 试错无数 终于成功了!)
-
IntelliJ IDEA全局内容搜索和替换教程图解
-
idea如何修改快捷键为Eclipse风格?IntelliJ IDEA设置快捷键及快捷键风格的方法
-
使用idea关联mysql时报错Server returns invalid timezone. Go to 'Advanced' tab and set 'serverTimezon'
-
JSP的相对路径如何计算深入研究
-
新手idea初始化配置(idea设置格式化模板分享)
-
idea如何设置jdk版本(idea项目配置jdk方法)
-
php命令行(cli)下执行PHP脚本文件的相对路径的问题解决方法
-
idea生成webservice客户端代码(webservice客户端调用方式)