`
wangyanlong0107
  • 浏览: 481511 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

【转】java中获取环境变量

    博客分类:
  • java
 
阅读更多

分为获取java自身的一些环境变量和和操作系统相关的环境变量。

  • 获取JVM相关的一些变量

在运行时设置一个环境变量 debug 为 true: java -Ddebug=true YourClass
在程序中设置一个环境变量 debug 为 true: System.setProperty( "debug", "true" );
获取一个环境变量 debug : String debug = System.getProperty( "debug" );

下表中列出了一部分环境变量,这些是 Java 已经定义好的,可以在程序中通过 System.getProperty( "key" ) 来获取,更多的环境变量请参阅 JDK 文档。

 

属性名 描 述
java.version Java 运行时版本
java.home Java 的安装目录
java.class.version Java 类格式的版本号
java.class.path Java 类的查找路径
java.io.tmpdir 默认的临时目录
java.compiler Java 所使用的及时编译器
java.ext.dirs Java 扩展包的目录
os.name 操作系统的名称
os.arch 操作系统的体系结构
os.version 操作系统的版本
file.separator 文件分隔符(Unix 下为'/')
path.separator 路径分隔符(Unix 下为':')
line.separator 换行符(Unix 下为'/n')
user.name 用户帐号名
user.home 用户目录
user.dir 用户当前的工作目录

 

其他具体的可以参考后面的代码实例程序。

  • 取得操作系统的环境变量

注意,这次是获取操作系统的环境变量,而不是获取JVM相关的一些变量。
  也许是为了营造JVM就是操作系统平台的气氛,抑或是为了强调Java的平台无关性,不知几时起Java已经把System.getenv(String)函数废弃了。所以一般来说Java只能获取它自己定义的一些变量,而无法与操作系统的环境变量交互,只能在运行靠java的“-D”参数来设置要传递给它的一些变量。
  所以唯一的办法只能先判断操作系统,然后用操作系统的命令来调出环境变量列表,设法获得该输出列表。

  • 代码实现
  • Properties getSysEnv() {

  •   Properties prop = new Properties();

      try {
       Process p = null;

       // 判断是哪种操作系统,然后执行相应的命令,该命令的输出必须是类似windows输入set命令的输出格式
       // 增加对新的操作系统的支持,只需改动此处程序即可
       String OS = System.getProperty("os.name").toLowerCase();
       if (OS.indexOf("windows") > -1) {
        p = Runtime.getRuntime().exec("cmd /c set"); // 其它的操作系统可以自行处理,
       } else if (OS.indexOf("linux") > -1) {
        p = Runtime.getRuntime().exec("/bin/sh -c set");
       } else if (OS.indexOf("sunos") > -1) {
        p = Runtime.getRuntime().exec("/bin/sh -c set");
       } else {
        System.out
          .println("### Unknown Operating System : Unknown Operating System! os.name="
            + OS);
        return prop;
       }

       // 把命令行的输出逐行解析,形成一个Properties对象
       BufferedReader br = new BufferedReader(new InputStreamReader(p
         .getInputStream()));
       String line;
       while ((line = br.readLine()) != null) {
        int i = line.indexOf("=");
        if (i > -1) {
         String key = line.substring(0, i);
         String value = line.substring(i + 1);
         prop.setProperty(key, value);
        }
       }
      } catch (Exception ex) {
       System.out
         .println("Exception occurred! Message " + ex.getMessage());
      }
      return prop;
     }

     

    以上代码,把当前的操作系统环境变量取到一个java.utils.Properties中去。一开始用System property “os.name”来判断是哪种操作系统,然后执行一个外部进程,得到一个“name=value”的输出流,并把它用一个InputStream读进来作解析即可。

    目前这段代码支持Windows,Linux,Sun Soloaris三种操作系统,如果要支持其他才作系统,原理很简单,不再细说。

分享到:
评论

相关推荐

    JAVA读取环境变量

    JAVA读取环境变量 在windows、linux中都可以运行,可指定任何环境变量

    java配置环境变量工具

    java配置环境变量,不用配置java_home,class_path,path,只需要轻轻一点,按照提示就可完成配置。一次下载,终身可用。

    详解Java获取环境变量及系统属性的方法

    主要介绍了详解Java获取环境变量及系统属性的方法,讲解了System.getEnv()和System.getProperties()这两个核心方法的使用,需要的朋友可以参考下

    Java 以及tomcat的环境变量的配置

    Java以及tomcat的安装和环境变量的配置

    java配置环境变量

    java配置环境变量详细描述,适合初级开发安装jdk的时候,配置环境变量。

    java环境变量jdk1.8设置

    java环境变量设置,环境变量是操作系统提供的一种机制,用于存储和获取关键信息以方便应用程序和用户。在Java开发中,我们经常需要配置一些环境变量来指定Java运行时的一些参数。 JAVA_HOME:Java安装目录,用于指定Java...

    自动设置java环境变量

    源代码来自http://blog.163.com/scau_09se01/blog/static/1817110742011214599452 本人在其基础上进行了些许修改,添加JAVA_HOME环境变量,解决了jdk安装路径包含空格时不能正确获取信息的bug

    简单的JAVA实现获取windows的系统路径

    这段简单的JAVA代码可以获取到WINDOWS的系统目录和环境变量,在XP和WIN7下测试通过!

    可以自动获取Java的安装环境

    自动获取环境变量,免安装,直接解压,打开点击获取环境变量,就会出现Javahome、path、和classpath的配置。

    java获取jdk路径

    java获取jdk路径 根据环境变量和正则表达式匹配

    java环境变量一键配置小工具

    java 环境变量一键配置小工具,使用方法解压压缩包获取下载地址。请使用非腾讯系列的浏览器

    Windows Bat脚本-快速切换Java版本

    该批处理脚本允许用户在多个JDK版本之间进行切换,并设置所选版本的JAVA_HOME环境变量,以便用户可以轻松切换不同的Java开发环境。 实现细节: 获取管理员权限: 在脚本开头,使用mshta命令获取管理员执行权限,...

    JAVA_API1.6文档(中文)

    java.awt.im.spi 提供启用可以与 Java 运行时环境一起使用的输入方法开发的接口。 java.awt.image 提供创建和修改图像的各种类。 java.awt.image.renderable 提供用于生成与呈现无关的图像的类和接口。 java.awt....

    GO语言获取系统环境变量的方法

    本文实例讲述了GO语言获取系统环境变量的方法。分享给大家供大家参考。具体实现方法如下: 代码如下:package main import (  “fmt”  “os” //我们要用到os包中的env ) func main() {  //os.Getenv检索环境...

    Java基础教案\JAVA精讲入门

     掌握环境变量的配置  掌握Java程序的开发过程  了解JSP技术 授课重点及难点:  建立Java的开发环境  编译执行第一个Java程序 教学方法:  比较与比喻教学方式,提高学生的学习兴趣  程序调适,让学生...

    Android获取与设置系统环境变量的方法指南

    主要给大家介绍了关于Android获取与设置系统环境变量的方法指南,文中通过示例代码介绍的非常详细,对各位Android开发者们具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

    java环境,根据apk路径获取apk的信息(包名,版本号,版本名,权限,图标等信息)

    java环境获取apk的信息(包名,版本号,版本名,权限,图标等信息),可直接导入android studio跑通,查看main方法,把apk的地址复制进去,右键main方法执行即可(需配置aapt环境变量,sdk中build-tools文件夹下...

    Java环境配置小工具

    Java环境变量一键配置,支持拖拽获取jdk位置,已安装jdk未配置自动识别位置,支持变更jdk版本,快速切换

    Java 1.6 API 中文 New

    java.util.prefs 此包允许应用程序存储并获取用户和系统首选项和配置数据。 java.util.regex 用于匹配字符序列与正则表达式指定模式的类。 java.util.spi java.util 包中类的服务提供者类。 java.util.zip 提供用于...

Global site tag (gtag.js) - Google Analytics