I just installed Oracle JDK 11 on my Windows 10. I noticed that the PATH variable doesn't include the JDK 11 path. Also the .JAR file extension is not associated with javaw. Our users used to doubleclick JAR file to execute the client Java/SWING application. With Java 11 this doesn't work. Is this a bug or feature? I know how to set the PATH and start the application manually using the command line. I just want to make it easier for end-users. Any ideas?
-
Does the JRE exhibit the same behavior? If you're only going to execute the JARs, you don't need the JDK. – m0skit0 Sep 27 '18 at 12:33
-
1Where I can get public JRE? There is no public JRE in Oracle JDK 11... – stepand76 Sep 27 '18 at 12:46
-
You're correct. That's because Java 11 is still experimental, probably that's why also it doesn't link to JARs at installation time. You can however do it through the OS. – m0skit0 Sep 27 '18 at 12:54
-
4@m0skit0 Java 11 is *not* experimental. It was officially released 2 days ago. – Erwin Bolwidt Sep 27 '18 at 13:00
-
@ErwinBolwidt Sorry maybe I didn't use the correct word: what I mean is there's no stand-alone JRE and Oracle redirects you to Java 8 when you ask for the JDK. – m0skit0 Sep 27 '18 at 13:03
-
2@m0skit0 You can download the Oracle JDK11 right now from https://www.oracle.com/technetwork/java/javase/downloads/index.html - no redirecting to Java 8 at all – Erwin Bolwidt Sep 27 '18 at 13:06
-
2Oracle says "In this release, the JRE or Server JRE is no longer offered. Only the JDK is offered. Users can use jlink to create smaller custom runtimes." (https://www.oracle.com/technetwork/java/javase/11-relnote-issues-5012449.html#Important_Changes) – Peter Hull Sep 27 '18 at 13:27
-
@PeterHull I don't know jlink, it is new to me. If I understand it allows me to create a custom JRE optimized for my application which is great. But some manual steps is still required on the end-user computer to launch the application. I will still need to have a native utility to make it easier for end users. – stepand76 Sep 27 '18 at 13:54
3 Answers
There is no Public JRE in Java 11, as there was in the previous Java versions. Don't be confused with the jre
directory in previous JDK version, it's not a Public JRE. Also installers of the old Public JRE copied the java.exe
and the javaw.exe
programs into the C:\Windows\System32
directory that is defined in the PATH
environment variable by default. They also did many other thing, like changes in your Windows registry. Installers of the old Public JRE had never changed anything in the PATH
.
Official alternative to the Public JRE is a custom runtime environment that you can built by the jlink tool of the JDK. However in this case you will have no jar file at all but UNIX shell and Batch scripts.
If you don't like it you may use JDK 11 and associate the jar files in Windows Explorer with javaw.exe
of JDK, instead of JRE, as described there Running JAR file on Windows

- 577
- 3
- 14
-
2I marked this as answer. It lead me to find some information on jlink which probably is a way we will follow - build smaler custom JRE + small native launcher for Windows and a script for Linux. – stepand76 Oct 01 '18 at 14:35
- Open
regedit.exe
- Select
HKEY_CLASSES_ROOT
- Create new key
.jar
- Type
jarfile
to default value img - In
HKEY_CLASSES_ROOT
create new keyjarfile
- In
jarfile
create key tree likejarfile DefaultIcon shell open command
- [Optional] Type path to icon/executable file to default value in
DefaultIcon
- Type path to
javaw.exe
to default value incommand
like"C:\Java\jdk11\bin\javaw.exe" -jar "%1"
img - Now select
javaw.exe
when opening the program.

- 35
- 4
I made a bat file, which contains the following:
java -jar %1
Click on a jar > open with > select your bat
If java path is set correctly (check with java -version) it will run your jar after double clicking.

- 2,224
- 2
- 21
- 24