web-dev-qa-db-ja.com

Java.exeがWindowsのsystem32にインストールされないようにするにはどうすればよいですか?

Javaインストールルーチン(例:jdk-7u1-windows-i586.exe))を防ぐ方法はありますか? Java.exeC:\Windows\system32ディレクトリにコピーしますか?

クライアントのラップトップにソフトウェアをインストールする必要があり、マシンにすでにインストールされている他のJavaアプリケーションを壊したくない。つまり、インストールしたいプライベートJREこれは私のソフトウェアでのみ使用されます。

これまでに、インストール済みのJREをコンピューターからクライアントのマシンにコピーしました。

17
rmoestl

昨日、WindowsのJavaバージョンの問題があることを発見しました。ご存知のように、最近Javaを最新の状態に保つことは重要であり、特に使用されているJREは重要です。 Windowssystem32またはsyswow64フォルダーにあるInternetExplorerによる。

C:ドライブでJavaを検索し、見つかったさまざまな実行可能ファイルを調べて、特定のシステムに状況が当てはまるかどうかを判断できます。

調査を行った結果、Java updaterを実行すると、通常はプログラムファイルにあるJavaホームにインストールされているファイルのみが更新されることがわかりましたが、Windowsシステムフォルダにあるファイルは更新されません。その結果、システムフォルダはデフォルトのシステムPATHにあるため、InternetExplorerの使用は引き続き古いバージョンのJavaファイル(Java.exe、javaw.exe、javaws.exe)を使用します。

解決策コントロールパネルを使用してJavaをアンインストールプログラムのアンインストール機能、最新バージョンをダウンロードして再インストールです。

乾杯!フェルナンド

8
Fernando Cabal

私は最近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)を削除するだけで、この問題を「解決」しました。これがどのような結果になるかはわかりません。

6
JonnyRaa

ソフトウェアで使用するJREを提供するだけで、次のことができます。

  • をセットする Java_HOMEアプリケーションを実行する前の変数
  • 正しいJava.exeファイルをポイントします(例:..\jre1.5.0_22\bin\Java <your_Java_main>

これは、たとえば* .batファイルで実行できます。

作成した* .batファイルを実行した後、他のすべてのJavaバージョンは無視され、どのバージョンがそのPCにインストールされているか、またはインストールされるかは関係ありません。

4
KristofMols

あなたがしなければならないのは、コントロールパネル->プログラムに行くことですプログラムをアンインストールします。古いJavaアップデートをアンインストールし、最新のJavaアップデートとJava開発キットアップデートを保持します。最新のJavaアップデートとJava開発キットアップデートは同じ番号である必要があります。

1
timmyt123

最新の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
user4246530

私が試みる1つの方法は、Java.exeという名前の書き込み専用の空のファイルをSystem32フォルダーに作成することです。

0
Esko