用system.getproperty()返回java系统信息, 但是system.getProperty(“JFS_HOME”)的返回值是null,说明这个路径值没设置好,,请问如何查看并把值设置好呢? 谢谢大家!

解决方案 »

  1.   

    命令行中输入
    java 
    javac
      

  2.   

    to grass_12:
    这个只是查看java命令参数的吧,不能解决我的问题。
      

  3.   

    try it
        Properties p = System.getProperties();     
        p.list(System.out);
      

  4.   

    to YY_MM_DD:
    这个方法可以查到java系统信息,但是没有JFS_HOME的key和value值,如果我要添加JSF_HOME的话,应该怎样做呢?谢谢!
      

  5.   

    以下是我更具你的要求在用户变量和系统环境变量里设置的内容:
    用户环境变量中:
    变量名:JSF_HOME 变量值:.;E:\java\lib;E:\java\lib\tools.jar ;E:\
    系统环境变量中:
    变量名:classpath 变量值:JSF_HOME
    以下是我的测试代码及部分输出结果:
    测试代码:
    public class Tester {
        public static void main(String[] args) {
         System.out.println(System.getProperties());
         System.out.println(System.getProperty("sun.boot.library.path"));
        }
    }
    部分输出结果:
    {java.runtime.name=Java(TM) SE Runtime Environment, sun.boot.library.path=E:\java\jre\bin, java.vm.version=11.0-b15, java.vm.vendor=Sun ..........................................(这里省略N行)....... sun.cpu.isalist=pentium_pro+mmx pentium_pro pentium+mmx pentium i486 i386 i86}
    E:\java\jre\bin
    重要的几点我都标上红色了
    虽然不是太懂,但是会隐约知道JSF_HOME只不过是用户随便设置的变量名,换成XXX_HOME也行,
    将System.getProperty的参数换成sun.boot.library.path后 只会输出E:\java\jre\bin
    因此,可以推断,System.getProperties());意思是输出系统当前的所有属性。而System.getProperty只是输出系统当前属性中的某个指定属性,那么system.getProperty(“JFS_HOME”)输出结果为NULL是正常的,因为系统当前没有名叫JSF_HOME这项属性。
    以上解释为什么会输出null
    你说如何添加JSF_HOME的意思是在系统当前属性里添加JSF_HOME这项属性吗?可以随便给系统添加属性吗?
    如果只是作为一个用户变量使用的话,这让我想到半年前我刚装JDK设置环境变量时当时在用户变量里定义了一个CLASS_HOME,然后在系统变量里classpath的值设置为CLASS_HOME,感觉着两个东西是一个道理
      

  6.   

    变量名:classpath 变量值:JSF_HOME -----------------------------------------
    classpath 变量值:%JSF_HOME%另:获得环境变量的值是使用 System.getenv 方法,而不是 System.getProperty 方法,
    后者是获得系统属性的值或者是启动参数中 -Dxxx=yyyy 中 xxx 的值。
      

  7.   

    System.out.println(System.getenv("JSF_HOME "));
    试试看