![](/img/trans.png)
[英]Java: System.getenv(“APPDATA”) returns null, now what?
[英]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.