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-OOアクセス変数
- 4. Javaシステム環境変数現在のユーザ
- 5. Javaシステムのプロパティと環境変数
- 6. 角度js(grunt)のシステム定義環境変数にアクセス
- 7. Java 1.4のミューテックス
- 8. Javaプログラミングでシステムから別のシステムにファイルにアクセスするには?
- 9. Windowsシステムでサーバ
- 10. JavaコードでWindows Active Directoryにアクセスする
- 11. Windowsシステムでの環境変数の伝達
- 12. PythonでWindowsシステム変数を設定する
- 13. oracle 12cのWindows 10でシステム変数を設定する方法
- 14. WindowsのJAVA_HOMEシステム変数を変更するスクリプト
- 15. AIRのシステム環境変数にアクセスしますか?
- 16. アクセスできない変数は、Java
- 17. セットアップログインJavaのシステムと権限とアクセス
- 18. Javaのメソッド変数にアクセスする
- 19. インスタンス変数にアクセスするJava
- 20. symfony 1.4とApacheのアクセス/エラーログ
- 21. PentahoケトルからJavaシステムのプロパティにアクセスできますか?
- 22. Windows 7のシステムでログファイルへのアクセスを拒否する
- 23. 1.4用にコンパイルされたJavaコードを1.4 JREでコンパイルするには?
- 24. CでWindowsでユーザー環境変数とシステム環境変数を個別に取得する方法
- 25. システムJAVA_HOME環境変数が
- 26. C++ Windows:メインプロセスとCallWndProcプロセスから同じ変数にアクセス
- 27. Androidでシステム共有ライブラリにアクセスする
- 28. Java 1.5+ 1.4へのバックポート
- 29. java 1.4のSSL互換性
- 30. Windowsに関するシステム変数と環境変数の違いは何ですか?
これは参考になりまし..ですちょうど私SETの出力を解析する代わりに、echo%env_variable_name%を使用して直接値を取得してください。 –
私はコマンドをパイプにJavaを学ばなかった=/ –
これは、実行中のJavaプログラムに設定されている環境変数が環境変数のグローバルセットと異なる場合、それを見つけるのに役立ちません。 –