繁体   English   中英

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

[英]System.getenv is not supported in Java 1.4. What is the alternative way?

我想在Java代码中找到特定环境变量$ ABC的值。
由于System.getenv(“ ABC”); 是Java 1.4上的一个选项,它的替代品是什么?

您的问题的评论者是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();

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

PS我没有测试它是否确实有效,因为我没有地方可以运行Java 1.4。

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

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


而且,很重要的是,您不应该继续针对Java 1.4开发/。 您缺少〜15年的安全补丁。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM