if(System.getProperty("os.name").toString().equals("Linux") ){
   System.out.println("操作系统3:"+System.getProperty("os.name"));
   SMAPIConfig.setConfigFilePath("../webapps/CRMS");
   }
   else {
   System.out.println("操作系统4:"+System.getProperty("os.name"));
   SMAPIConfig.setConfigFilePath("../webapps/CRMS");
   }为何两个分支均不能执行?不论是liunx还是windows,都不能执行后面的语句?

解决方案 »

  1.   

    忘记说了,我在windowsXP下面也是测试正常的
    在xp下面 ,System.getProperty("os.name")得到的是"Windows XP"
    但是转移到Linux下面,就不行了,不知道什么原因?
      

  2.   

    if(...) {};
    else {};
    二者会执行一个,怎么都不执行呢?
      

  3.   

    有可能就是NullPointerException了,if里面调换一下看看if("Linux".equals(System.getProperty("os.name")) ){
    System.out.println("操作系统3:"+System.getProperty("os.name"));
    SMAPIConfig.setConfigFilePath("../webapps/CRMS");
      }
      else {
    System.out.println("操作系统4:"+System.getProperty("os.name"));
    SMAPIConfig.setConfigFilePath("../webapps/CRMS");
      }
    另外System.getProperty(key)本来就返回String,没必要再toString
      

  4.   


    String osname = System.getProperty("os.name");
    if (osname != null && osname.toUpperCase().contains("Linux".toUpperCase())) {
    System.out.println("操作系统3:" + osname);
    SMAPIConfig.setConfigFilePath("../webapps/CRMS");
    } else {
    System.out.println("操作系统4:" + osname);
    SMAPIConfig.setConfigFilePath("../webapps/CRMS");
    }
      

  5.   

    你的方法也无效,可能是NullPointerException的原因,但是没有找出来
      

  6.   

    if("Linux".equals(System.getProperty("os.name")) ){
      

  7.   

    楼主测试一下,在Linux直接打印一下System.getProperty("os.name")的值看看是否是Linux,来修改对应的条件。
      

  8.   


    直接测试过了,是Linux,但是无法用.equal来比较我用
    if(osname.startsWith("Windows"))
    System.out.println("操作系统4:" + System.getProperty("os.name"));却成功了