现在的位置: 首页 > 综合 > 正文

Java的System.getProperty()方法可以获取系统变量和System.getenv()获取系统环境变量

2013年03月29日 ⁄ 综合 ⁄ 共 1942字 ⁄ 字号 评论关闭

java.version

Java 运行时环境版本

java.vendor

Java 运行时环境供应商

java.vendor.url

Java 供应商的 URL

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

默认的临时文件路径

java.compiler

要使用的 JIT 编译器的名称

java.ext.dirs

一个或多个扩展目录的路径

os.name

操作系统的名称

os.arch

操作系统的架构

os.version

操作系统的版本

file.separator

文件分隔符(在 UNIX 系统中是“/”)

path.separator

路径分隔符(在 UNIX 系统中是“:”)

line.separator

行分隔符(在 UNIX 系统中是“/n”)

user.name

用户的账户名称

user.home

用户的主目录

user.dir

用户的当前工作目录


可以通过System.getenv()获取系统环境变量;

System.getenv("JAVA_HOME"); // 获取JAVA_HOME环境变量

System.getenv("CLASSPATH"); // 获取CLASSPATH环境变量


-----------------------------------------------------------------------------------

Java启动时,如果设置了-classpath或-cp参数的话,直接取这个参数后面的值,设置到java.class.path系统变量中

否则查询CLASSPATH环境变量的值,设置到java.class.path系统变量中

如果没有定义CLASSPATH环境变量或CLASSPATH环境变量为.,则把.设置到java.class.path系统变量中

在Lanuer生成AppClassLoader类加载器的时候,处理如下

  String str = System.getProperty("java.class.path");  // 先拿到类加载路径
  File[] arrayOfFile = str == null ? new File[0] : Launcher.getClassPath(str); // 转换为File

  URL[] arrayOfURL = this.val$s == null ? new URL[0] : Launcher.pathToURLs(arrayOfFile); // 把File转换成URL

  private static URL[] pathToURLs(File[] paramArrayOfFile)
  {
    URL[] arrayOfURL = new URL[paramArrayOfFile.length];
    for (int i = 0; i < paramArrayOfFile.length; i++) {
      arrayOfURL[i] = getFileURL(paramArrayOfFile[i]); // 获取URL
    }

    return arrayOfURL;
  }

  static URL getFileURL(File paramFile)
  {
    try
    {
      paramFile = paramFile.getCanonicalFile();  // 如果File为.,则直接返回的URL为当前目录,如D:\work_taobao\workspace\Main

    } catch (IOException localIOException) {
    }
    try {
      return ParseUtil.fileToEncodedURL(paramFile);
    } catch (MalformedURLException localMalformedURLException) {
    }
    throw new InternalError();
  }

抱歉!评论已关闭.