簡體   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