システムにjre(windows)があるかどうかを確認する簡単な防弾技術
質問
初心者の質問はごめんなさい:P" java -version" Windowsシステムのcmdで、システムが.jarファイルを実行できることを保証します エラーが表示されない場合
解決
JREを確認する唯一の保証された方法は、小さなJavaプログラムを実行することです。
それともそうではないかもしれません-システムにはJava標準ライブラリの一部しかインストールできないと考えられます。その場合、小さなテストJARは正常に動作しますが、完全なプログラムは動作しない可能性があります。なぜだれかがシステムをそのように設定するのに苦労するのか想像できませんが。
他のヒント
コマンドラインから" java --version"を呼び出すことができます。 javaがインストールされていない場合、または現在インストールされているバージョン情報がエラーを返します。
まあ、明らかに違います。 C:\ Windows \ System32のように、java.batと呼ばれる空のファイルをPATHに追加できます。 " java"の呼び出しエラーは発生しませんが、JREがインストールされているわけではありません。
小さなクラスファイルを実行して、ファイルに値を書き込んでからチェックするのはなぜですか?失敗した場合、機能しません。
適切な値は、java.versionシステムプロパティの値です。
Windowsでは、HKLM \ SOFTWARE \ JavaSoft \ Java Plug-inでレジストリを確認できます。そこから、各サブキーはインストール済みのJREです。
編集これは、インストールされたJREの文字列の配列を返すC#コードです
public string[] GetInstalledJavas() {
// hold the registry subkeys that list the installed JRE's
string[] jres = null;
try {
RegistryKey myKey = Registry.LocalMachine;
myKey = myKey.OpenSubKey(@"SOFTWARE\JavaSoft\Java Plug-in"); // read-only
jres = myKey.GetSubKeyNames();
} catch (Exception myException) {
Console.Writeline(myException.ToString());
}
return jres;
}
実際に、Windowsマシンでのチェックだけに関心がある場合は、JNLPのハンドラーのレジストリをチェックすることをお勧めします。これにより、比較的新しいJREの存在が保証されます。