Javaインストールルーチン(例:jdk-7u1-windows-i586.exe))を防ぐ方法はありますか? Java.exeをC:\Windows\system32
ディレクトリにコピーしますか?
クライアントのラップトップにソフトウェアをインストールする必要があり、マシンにすでにインストールされている他のJavaアプリケーションを壊したくない。つまり、インストールしたいプライベートJREこれは私のソフトウェアでのみ使用されます。
これまでに、インストール済みのJREをコンピューターからクライアントのマシンにコピーしました。
昨日、WindowsのJavaバージョンの問題があることを発見しました。ご存知のように、最近Javaを最新の状態に保つことは重要であり、特に使用されているJREは重要です。 Windowssystem32またはsyswow64フォルダーにあるInternetExplorerによる。
C:ドライブでJavaを検索し、見つかったさまざまな実行可能ファイルを調べて、特定のシステムに状況が当てはまるかどうかを判断できます。
調査を行った結果、Java updaterを実行すると、通常はプログラムファイルにあるJavaホームにインストールされているファイルのみが更新されることがわかりましたが、Windowsシステムフォルダにあるファイルは更新されません。その結果、システムフォルダはデフォルトのシステムPATHにあるため、InternetExplorerの使用は引き続き古いバージョンのJavaファイル(Java.exe、javaw.exe、javaws.exe)を使用します。
解決策はコントロールパネルを使用してJavaをアンインストールプログラムのアンインストール機能、最新バージョンをダウンロードして再インストールです。
乾杯!フェルナンド
私は最近Java 8にアップグレードし、system32でのJavaバージョンはまだJava 7であったため、この問題を発見しました。レジストリキーについて文句を言うので、バージョンを実行することさえできます
U:\>Java -version
Error: Registry key 'Software\JavaSoft\Java Runtime Environment'\CurrentVersion'
has value '1.8', but '1.7' is required.
Error: could not find Java.dll
Error: Could not find Java SE Runtime Environment.
次のことをすると、私は犯人を指摘しました。
U:\>where Java
C:\Windows\System32\Java.exe
C:\Program Files\Java\jdk1.8.0_45\bin\Java.exe
System32でJava)を削除するだけで、この問題を「解決」しました。これがどのような結果になるかはわかりません。
ソフトウェアで使用するJREを提供するだけで、次のことができます。
Java_HOME
アプリケーションを実行する前の変数..\jre1.5.0_22\bin\Java <your_Java_main>
)これは、たとえば* .batファイルで実行できます。
作成した* .batファイルを実行した後、他のすべてのJavaバージョンは無視され、どのバージョンがそのPCにインストールされているか、またはインストールされるかは関係ありません。
あなたがしなければならないのは、コントロールパネル->プログラムに行くことですプログラムをアンインストールします。古いJavaアップデートをアンインストールし、最新のJavaアップデートとJava開発キットアップデートを保持します。最新のJavaアップデートとJava開発キットアップデートは同じ番号である必要があります。
最新のJDKがまだレジストリに対して正しいコードを記述していないことがわかりました。問題は、コンピューターにJREがない場合、JDKがJREをレジストリに正しく登録しないことです。
JDK 1.7u72をインストールする場合は、エラーメッセージが示すようにSoftware\JavaSoft\Javaランタイム環境を追加するだけです。そして、値1.7のCurrentVersionの文字列エントリを追加します。次に、Software\JavaSoft\Java Runtime Environment\1.7を追加し、値が「C:\ ProgramFiles\Java\jre7」のJavaHome文字列エントリを配置します。そして、JREは正しく機能します。レジストリを使用している場合はOracleのせいにし、正しいコードを記述します。それ以外の場合はレジストリを使用しないでください。
私が試みる1つの方法は、Java.exeという名前の書き込み専用の空のファイルをSystem32フォルダーに作成することです。