在jdk源码里的注释就说得很清楚了,但我不知道过期没过期,发现jdk里很多注释和代码都不匹配,有的代码更新了,注释还是旧的
网上也有一些汇总,我数了一下,和jdk里的注释是一致的。可读性更好,我就贴出来了
java.version | java版本 |
java.vendor | java提供商 |
java.vendor.url | java提供商链接 |
java.home | java安装目录 |
java.vm.specification.version | java虚拟机规范版本 |
java.vm.specification.vendor | java虚拟机规范提供商 |
java.vm.specification.name | java虚拟机规范名称 |
java.vm.version | java虚拟机版本 |
java.vm.vendor | java虚拟机提供商 |
java.vm.name | java虚拟机名称 |
java.specification.version | java规范版本 |
java.specification.vendor | java规范提供商 |
java.specification.name | java规范名称 |
java.class.version | java类格式版本号 |
java.class.path | java类路径 |
java.library.path | 加载库时搜索的路径列表 |
java.io.tmpdir | 临时io目录 |
java.compiler | JIT编译器名称 |
java.ext.dirs | 扩展目录 |
os.name | 操作系统名称 |
os.arch | 操作系统架构 |
os.version | 操作系统版本 |
file.separator | 文件分隔符 |
path.separator | 路径分隔符 |
line.separator | 换行符 |
user.name | 用户名 |
user.home | 用户主目录 |
user.dir | 用户当前目录 |
顺便贴段代码,可以看到所有的系统变量
public static void main(String[] args) { String[] keys = new String[] { "java.version", "java.vendor", "java.vendor.url", "java.home", "java.vm.specification.version", "java.vm.specification.vendor", "java.vm.specification.name", "java.vm.version", "java.vm.vendor", "java.vm.name", "java.specification.version", "java.specification.vendor", "java.specification.name", "java.class.version", "java.class.path", "java.library.path", "java.io.tmpdir", "java.compiler", "java.ext.dirs", "os.name", "os.arch", "os.version", "file.separator", "path.separator", "line.separator", "user.name", "user.home", "user.dir" }; int size = keys.length; for (int i = 0; i < size; i++) { System.out.println(keys[i] + ": " + System.getProperty(keys[i])); } }
除了上述的28个系统变量之外,在启动java程序时,也可以用-D,增加临时的系统变量
public static void main(String[] args) { String tempProperty = "hero.name"; System.out.println(System.getProperty(tempProperty)); }
执行效果:
