Java 1.4不支持System.getenv。替代方式是什么?

时间:2017-06-01 12:25:48

标签: java

我想在Java代码中找到特定env变量$ ABC的值 自System.getenv(" ABC"); Java 1.4不是一个选项,它的替代方案是什么?

2 个答案:

答案 0 :(得分:0)

您的问题的评论员是100%正确的。如果可以以任何方式升级您的Java版本。如果无法升级并且您知道目标环境,则可以执行bash命令并读取结果。像这样:

p = Runtime.getRuntime().exec("echo $" + yourEnvVariable);
p.waitFor();

BufferedReader reader =
     new BufferedReader(new InputStreamReader(p.getInputStream()));

String line = "";
while ((line = reader.readLine())!= null) {
  sb.append(line + "\n");
}
String variableValue = sb.toString();

但这绝不是一个好习惯,因为它非常依赖于执行程序的操作系统。

P.S 我没有测试它是否真的有效,因为我无处运行Java 1.4。

答案 1 :(得分:0)

更好的想法是创建一个包装器脚本来启动程序,并使用Properties参数将特定环境变量的值放入JVM的系统-Dname=value对象中。< / p>

显然,您需要为每个OS系列实现不同的包装器。

而且,严肃地说,你不应该继续为Java 1.4开发。你缺少大约15年的安全补丁。