JDKをインストールしたのですが、ブラウザでアプレットを実行できません(JREをインストールしていない可能性があります)。
ただし、JREをインストールすると、デフォルトのランタイムとしてJDKが上書きされます。サーバーJVMが必要なので、これはほとんどすべて(Eclipse、Ant)を壊します。
最近ではJava_HOME
環境変数はありません-レジストリマジックを使用しているようです(システムパスの設定も役に立たない)。以前は、JREを使用してJDKを復元した後、JREをアンインストールしました。今回は適切に修正したいと思います。
これはjre autoupdaterでも現れます-昔々、私はJDKとJREで動作するセットアップをしていましたが、すべてを更新して破壊しました。
これは、Windowsでは少し苦痛です。これが私がやることです。
最新のSun JDKをインストールします。 6u11、c:\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 .
プロパティダイアログで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初期化ファイルでパラメーターを永続的に設定することです。
私はちょうどその問題(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)
必要なすべてのバージョンのJDKをインストールするだけで、インストールされている最新のバージョンがデフォルトになるため、必要に応じてデフォルトにしたいバージョンを再インストールするだけです。
多くの試みの後、私は接合アプローチがより便利であることを発見しました。これは、この問題がLinuxでどのように解決されるかに非常に似ています。
基本的には、c:\tools\Java\default
と実際のバージョンのJavaをシステムでデフォルトとして使用したい)の間にlinkを含むことで構成されます。
PATH
を指す[〜#〜] only [〜#〜]このjre c:\tools\Java\default\bin
-Java_HOME
`c:\ tools\Java\defaultを指すC:\tools\Java\JRE_1.6
C:\tools\Java\JRE_1.7
C:\tools\Java\JRE_1.8
C:\tools\Java\
に移動しますjunction default JRE_1.6
を実行しますこれにより、C:\tools\Java\default
とC:\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.bat
set_jdk7.bat
のようなコマンドプロンプトを使用せずにバッチファイルを作成できます。
@СӏаџԁеМаятіиから示唆されたように
mklink /J default JRE_1.8
を使用できます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など)ごとに異なるフォルダーがあり、多くのスペースを使用していました。
.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