web-dev-qa-db-ja.com

デフォルトのJava installation / runtime(Windows)を設定するにはどうすればよいですか?

JDKをインストールしたのですが、ブラウザでアプレットを実行できません(JREをインストールしていない可能性があります)。

ただし、JREをインストールすると、デフォルトのランタイムとしてJDKが上書きされます。サーバーJVMが必要なので、これはほとんどすべて(Eclipse、Ant)を壊します。

最近ではJava_HOME環境変数はありません-レジストリマジックを使用しているようです(システムパスの設定も役に立たない)。以前は、JREを使用してJDKを復元した後、JREをアンインストールしました。今回は適切に修正したいと思います。

これはjre autoupdaterでも現れます-昔々、私はJDKとJREで動作するセットアップをしていましたが、すべてを更新して破壊しました。

44
Stephen

これは、Windowsでは少し苦痛です。これが私がやることです。

最新のSun JDKをインストールします。 6u11c:\install\jdk\Sun\6u11などのパスで、インストーラーにデフォルトの場所(c:\program files\blah)にパブリックJREをインストールさせます。これにより、ほとんどの場合にデフォルトのJREがセットアップされます。

c:\install\jdk\Sun\5u18の-​​5u18のように、必要に応じて古いJDKをインストールしますが、パブリックJREはインストールしないでください。

開発時には、各JDKバージョンのコマンドプロンプトを設定するために使用する小さなバッチファイルがあります。基本的にはJava_HOME=c:\jdk\Sun\JDK_DESIREDを設定してからPATH=%Java_HOME%\bin;%PATH%を設定するだけです。これにより、目的のJDKがパスの最初に配置され、AntやMavenなどのセカンダリツールはJava_HOME変数を使用できます。

ほとんどのパブリックJREインストールでは、リンクされた実行可能ファイルがc:\WINDOWS\System32\Java.exeに配置されるため、パスは重要です。通常、 overrides .

40
nbeyer

プロパティダイアログでEclipseスタートアップショートカットの動作にパッチを適用しました

から

"E:\Program Files\Eclipse\eclipse.exe"

"E:\Program Files\Eclipse\eclipse.exe" -vm "E:\Program Files\Java\jdk1.6.0_30\bin"

説明通り Eclipseドキュメント内

それは物事を修正するショートカットに依存するため、パッチのみです...

別の方法は、Eclipse初期化ファイルでパラメーターを永続的に設定することです。

6
Jörn Guy Süß

私はちょうどその問題(Java 1.8対Windows 7のJava 9)があり、私の発見は次のとおりです。

ショートバージョン

デフォルトのようです(パスエントリのため)

c:\ProgramData\Oracle\Java\javapath\Java -version

必要なバージョンを選択します(テスト、cmdで補完するタブを使用し、それらの数字が何を表しているかわからない)、2つのオプションがあり、詳細は長いバージョンを参照してください

c:\ProgramData\Oracle\Java\javapath_target_[tab]

ジャンクション/リンクを削除し、バージョンへのリンク(Java 8の場合は181743567で終わるもの)

rmdir javapath
mklink /D javapath javapath_target_181743567

より長いバージョン:

Java 9が機能しなかった後、Java 1.8を再インストールします。インストールのシーケンスはjdk1.8.0_74、jdk-9.0.4で、jdk1.8.0_162でJava 8をデフォルトにしようとしました...

Jdk1.8.0_162をインストールした後、私はまだ持っています

Java -version
Java version "9.0.4"
Java(TM) SE Runtime Environment (build 9.0.4+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.4+11, mixed mode)

パスに見えるのは

Path=...;C:\ProgramData\Oracle\Java\javapath;...

だから私はそれが何であるかをチェックし、それがジャンクションであることがわかりました

c:\ProgramData\Oracle\Java>dir
 Volume in drive C is OSDisk
 Volume Serial Number is DA2F-C2CC

 Directory of c:\ProgramData\Oracle\Java

2018-02-07  17:06    <DIR>          .
2018-02-07  17:06    <DIR>          ..
2018-02-08  17:08    <DIR>          .Oracle_jre_usage
2017-08-22  11:04    <DIR>          installcache
2018-02-08  17:08    <DIR>          installcache_x64
2018-02-07  17:06    <JUNCTION>     javapath [C:\ProgramData\Oracle\Java\javapath_target_185258831]
2018-02-07  17:06    <DIR>          javapath_target_181743567
2018-02-07  17:06    <DIR>          javapath_target_185258831

それらのハッシュはベルを鳴らしませんが、チェックしたとき

c:\ProgramData\Oracle\Java\javapath_target_181743567>.\Java -version
Java version "1.8.0_162"
Java(TM) SE Runtime Environment (build 1.8.0_162-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.162-b12, mixed mode)

c:\ProgramData\Oracle\Java\javapath_target_185258831>.\Java -version
Java version "9.0.4"
Java(TM) SE Runtime Environment (build 9.0.4+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.4+11, mixed mode)

Java 8をデフォルトに戻すには、説明に従ってリンクを削除する必要がありました here

rmdir javapath

Javaで再作成しました

mklink /D javapath javapath_target_181743567

テスト済み:

c:\ProgramData\Oracle\Java>Java -version
Java version "1.8.0_162"
Java(TM) SE Runtime Environment (build 1.8.0_162-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.162-b12, mixed mode)

**更新(Java 10)**

Java 10でも同様です。javapathのみがc:\ Program Files(x86)\ Common Files\Oracle\Java \にありますが、64ビットIMHOをインストールすると奇妙です

.\Java -version
Java version "10.0.2" 2018-07-17
Java(TM) SE Runtime Environment 18.3 (build 10.0.2+13)
Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.2+13, mixed mode)
3
Betlista

必要なすべてのバージョンのJDKをインストールするだけで、インストールされている最新のバージョンがデフォルトになるため、必要に応じてデフォルトにしたいバージョンを再インストールするだけです。

1
John Mikic

多くの試みの後、私は接合アプローチがより便利であることを発見しました。これは、この問題がLinuxでどのように解決されるかに非常に似ています。

基本的には、c:\tools\Java\defaultと実際のバージョンのJavaをシステムでデフォルトとして使用したい)の間にlinkを含むことで構成されます。


設定方法:

  1. junction をダウンロードし、PATH環境変数に必ず入れてください
  2. この方法で環境を設定します。-PATHを指す[〜#〜] only [〜#〜]このjre c:\tools\Java\default\bin-Java_HOME `c:\ tools\Java\defaultを指す
  3. すべてのjre-sを次のような1つのフォルダーに保存します(それをProgram FIlesフォルダーに保存すると、いくつかの
    • C:\tools\Java\JRE_1.6
    • C:\tools\Java\JRE_1.7
    • C:\tools\Java\JRE_1.8
  4. コマンドプロンプトを開き、C:\tools\Java\に移動します
  5. junction default JRE_1.6を実行します

これにより、C:\tools\Java\defaultC:\tools\Java\JRE_1.6の間に junction (Linuxのシンボリックリンクとほぼ同じ)が作成されます。

この方法では、常にデフォルトのJava in c:\tools\Java\default]になります。

その後、デフォルトのJavaを1.8バージョンに変更する必要がある場合は、実行するだけです

junction -d default
junction default JRE_1.8 

その後、set_jdk8.batset_jdk7.batのようなコマンドプロンプトを使用せずにバッチファイルを作成できます。

@СӏаџԁеМаятіиから示唆されたように

編集:Windows Vistaから、mklink /J default JRE_1.8を使用できます

0
snovelli

JREとともにC:\JavaにいくつかのJDK(1.4、1.5、1.6)をインストールしています。次に、C:\Program Files\JavaのパブリックJREをSunに更新させます。
最近改善があり、jre6にインストールします。以前は、新しいバージョン(1.5.0_4、1.5.0_5など)ごとに異なるフォルダーがあり、多くのスペースを使用していました。

0
PhiLho

.jarアプリを実行する変更可能な方法は、そのための.bat cmdを作成することです。たとえば、PCにjre10とjre8がインストールされており、jre10がデフォルトのjreです。ただし、jarはjre8で動作するように指定されており、次のcmdが動作します。

"C:\Program Files\Java\jre1.8.0_181\bin\Java.exe" -jar JabRef-4.3.1.jar
0
ndtc