使用Java代码从start.sh文件使变量不区分大小写

时间:2019-05-23 09:15:50

标签: java jboss7.x

我只需要使jboss服务器中的系统变量不区分大小写。

变量在start.sh文件中定义如下:

cd /opt/logs
nohup /opt/jboss/bin/standalone.sh -DmyEnvironment=Release_19.2.2_ST -c standalone-full_st.xml &

下面是当前用于根据环境在文件名后附加字符串的当前代码。

public static String getEnvConfiguredFile(String file) {
    String env = System.getProperty("myEnvironment");
    if(env !=null) {
        if(env.contains("AT")){
        return file+"_at";
        }
        else if(env.contains("ST")){
        return file+"_st";
        }
        else if(env.contains("PROD")){
        return file+"_prod";
        }
        else{
        return file;
        }
    }else {
    return file;
    }
}

问题是当我使用-DmyEnvironment = Release_19.2.2_st(此处st为小写字母)时,由于找不到文件,我遇到了应用程序错误。

要以小写形式运行,我将方法更改为:

public static String getEnvConfiguredFile(String file) {
    String envtmp = System.getProperty("myEnvironment");
    env=envtmp.toUpperCase();
    if(env !=null) {
        if(env.contains("AT")){
        return file+"_at";
        }
        else if(env.contains("ST")){
        return file+"_st";
        }
        else if(env.contains("PROD")){
        return file+"_prod";
        }
        else{
        return file;
        }
    }else {
    return file;
    }
}

这个问题看起来很简单,但是start.sh中的大写字母可以正常工作,而小写字母则给出错误。

以下是例外

    Caused by: java.lang.NullPointerException
        at java.util.Properties$LineReader.readLine(Properties.java:434) [rt.jar:1.7.0_71]
        at java.util.Properties.load0(Properties.java:353) [rt.jar:1.7.0_71]
        at java.util.Properties.load(Properties.java:341) [rt.jar:1.7.0_71]
        at com.corridor.util.PropertiesUtil.<init>(PropertiesUtil.java:22) [home-util.jar:]
        at com.corridor.util.PathUtil.getBrokerProperties(PathUtil.java:90) [home-util.jar:]
        at com.corridor.util.MessageUtil.<clinit>(MessageUtil.java:32) [home-util.jar:]
        ... 153 more

0 个答案:

没有答案