2017-06-01 46 views
0

我想在Java代码中找到特定env变量$ ABC的值。
由于System.getenv(“ABC”);不是Java 1.4上的选项,它有什么选择?Java 1.4中不支持System.getenv。什么是替代方式?

+3

升级Java是最好的选择 – Jens

+2

虽然我也明白,Java 1.4中是太旧,任何人使用它几乎任何理由,但我不明白这个问题的反对投票,因为问题是完全OK,你不知道他是否可以控制目标环境中使用的Java版本。并说他没有控制它,那么他是不允许问这种东西的? – Tarmo

+0

暂时无法升级到Java 8! – Amit

回答

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。

0

一个更好的主意是创建一个包装脚本来启动你的程序,并让它把特定环境变量的值放入JVM的系统Properties对象中,使用-Dname=value参数。

显然你需要为每个操作系统家族实现不同的包装。


而且,严重的是,您不应该继续为Java 1.4开发/。您错过了15年的安全补丁。

相关问题