System.out.println("appdata = " + System.getProperty("APPDATA"));
输出:
appdata = null
系统中环境变量已设,重启过机器,用set命令就可以查到:
C:\Users\Administrator>set
ALLUSERSPROFILE=C:\ProgramData
APPDATA=C:\Users\Administrator\AppData\Roaming
AXIS2C_HOME=D:\axis2c-bin-1.6.0-win32
……另,我是windows 2008 server,x64.

解决方案 »

  1.   

    System.getProperty好像不是读环境变量的。
      

  2.   

    java -Dproerty=value
    System.getProperty读的是上面的property和vlaue以及一些固定定义好的property
      

  3.   

    环境变量的话,是不是要用 System.getenv("APPDATA") 
      

  4.   

    嗯 明白了,可是如何设置properties呢?
    我用System.setProperty设置后,下次启动又不生效了?有没有永久设置的方法?以后无需每次set就可以正确读出来?
      

  5.   

    解决了,谢谢楼上几位:
    Eclipse->$project->property->Run/Debug settings->Lunch configurations->Edit->Arguments->VM arguments 
    在空栏里填上-Dname=value,字符串中有空格,则整个字符串用""括起来,没行一个属性,如:
    -DAPPDATA=C:\\Users\\Administrator\\AppData\\Roaming
    -DCCM_HOME=C:\\Program Files (x86)\\FalconStor\\CCM
    DCCM_HOME=C:\\Users\\Administrator\\AppData\\Local
    设置完后:
    使用如下语句可以读到设置的值:
    System.out.println("appdata = " + System.getProperty("APPDATA"));