J2SE 1.4を使用している場合、Windowsで環境変数の値を取得する最良の方法はありますか?Java 1.4でWindowsシステム変数にアクセス
答えて
Java APIから静かに環境変数にアクセスする方法はありません。このようなコードでのRuntime.execであることを達成する唯一の方法:あなたはJava変数System.getPropertiesのおかげで()にアクセスすることができますが
Process p = null;
Runtime r = Runtime.getRuntime();
String OS = System.getProperty("os.name").toLowerCase();
// System.out.println(OS);
if (OS.indexOf("windows 9") > -1) {
p = r.exec("command.com /c set");
}
else if ((OS.indexOf("nt") > -1)
|| (OS.indexOf("windows 2000") > -1)
|| (OS.indexOf("windows xp") > -1)) {
// thanks to JuanFran for the xp fix!
p = r.exec("cmd.exe /c set");
}
。 しかし、あなたは唯一のあなたが詳細については、「-Dkey =値」でjavaコマンドラインで
を提供することができ、いくつかのenv JVM自体によってマッピングされた変数、および追加データがhttp://www.rgagnon.com/javadetails/java-0150.html
を参照してくださいになるだろうとJVMにそれらを渡します-Dシステムのプロパティー。たとえば、次のようになります。
java -D<java var>=%<environment var>%
このようにして、特定のOSに縛られることはありません。
これにはJVMのスイッチがあります。 hereから:
Start the JVM with the "-D" switch to pass properties to the application and read them with the System.getProperty() method.
SET myvar=Hello world
SET myothervar=nothing
java -Dmyvar="%myvar%" -Dmyothervar="%myothervar%" myClass
then in myClass
String myvar = System.getProperty("myvar");
String myothervar = System.getProperty("myothervar");
あなたは、環境変数を取得するためのgetenv()を使用することができます。
String variable = System.getenv("WINDIR");
System.out.println(variable);
私はのgetenv()関数はいくつかの点で廃止されましたと信じていますがjava 1.5で後で "非推奨"となりました
ETA:
私はこの質問がjava 1.4を特に指しているので、これはあなたのためには機能しません(少なくとも、廃止予定の警告に終わるかもしれません)。私はここに答えを残しておきますが、誰か他の人がこの質問に遭遇し、それ以降のバージョンを使用している場合に備えておきます。
Map<String, String> env = System.getenv();
for (String envName : env.keySet()) {
System.out.format("%s=%s%n", envName, env.get(envName));
}
のApache CommonsのExecは "org.apache.commons.exec.environment.EnvironmentUtils" とJDKの1.5より前の環境変数を取得する方法を提供します:
(String) EnvironmentUtils.getProcEnvironment().get("SOME_ENV_VAR")
- 1. Javaシステム環境変数
- 2. Windows用のデフォルトPATHシステム変数?
- 3. Javaシステム環境変数現在のユーザ
- 4. Javaシステムのプロパティと環境変数
- 5. Javaプログラミングでシステムから別のシステムにファイルにアクセスするには?
- 6. WindowsのJAVA_HOMEシステム変数を変更するスクリプト
- 7. Windowsシステムでの環境変数の伝達
- 8. アクセスできない変数は、Java
- 9. インスタンス変数にアクセスするJava
- 10. AIRのシステム環境変数にアクセスしますか?
- 11. Java 1.4のミューテックス
- 12. Windowsシステムでサーバ
- 13. セットアップログインJavaのシステムと権限とアクセス
- 14. symfony 1.4とApacheのアクセス/エラーログ
- 15. Windows 7のシステムでログファイルへのアクセスを拒否する
- 16. Javaの変数のアクセス許可
- 17. Javaの外部クラスのアクセス変数
- 18. Androidでシステム共有ライブラリにアクセスする
- 19. Windowsに関するシステム変数と環境変数の違いは何ですか?
- 20. 1.4用にコンパイルされたJavaコードを1.4 JREでコンパイルするには?
- 21. symfony 1.4でフロントエンド/ libのクラスに変数を渡す方法
- 22. 階層内のどこでも変数にアクセスするJava
- 23. Java 1.5+ 1.4へのバックポート
- 24. アクセス予約システム
- 25. Android:アクセス "システム" - ドローイング
- 26. Windowsでmysqlシステム変数を最適化するために変更するものは何ですか?
- 27. PYTHONPATHとPATHシステム変数
- 28. Microsoft SDKのシステム変数
- 29. FreemarkerテンプレートからJavaシステムのプロパティにアクセスする方法は?
- 30. spring rmi java 1.4およびjava 1.5
これは参考になりまし..ですちょうど私SETの出力を解析する代わりに、echo%env_variable_name%を使用して直接値を取得してください。 –
私はコマンドをパイプにJavaを学ばなかった=/ –
これは、実行中のJavaプログラムに設定されている環境変数が環境変数のグローバルセットと異なる場合、それを見つけるのに役立ちません。 –