Reputation: 1445
Running a .jar file in a command line works fine, but i am not able to run any .jar file by double clicking on my Windows 7 (64). It seems nothing happens after the double click.
I tried the ftype
hint, no success:
ftype jarfile="C:\Program Files\Java\jre7\bin\javaw.exe" -jar "%1" %*
I reinstalled the JDK 7 64-bit, no success.
Any idea?
Upvotes: 90
Views: 559639
Reputation: 1658
In Windows
10
, I used: The JAVA_HOME
instead!
I renamed Computer\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jar
to Computer\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jar_BACK
And I used:
assoc .jar=jarfile
ftype jarfile="%JAVA_HOME%\bin\javaw.exe" -jar "%1" %*
Upvotes: 1
Reputation: 10350
You may also run it from the Command Prompt (cmd):
java.exe -jar file.jar
I know this is not an answer for the double-click, but it might save time for some.
Upvotes: 21
Reputation: 21
To run jar file by double click (in windows): Open cmd and write:
assoc .jar
you should get:
.jar=jarfile
then write:
ftype jarfile
you should get something like this:
jarfile="C:\Program Files\Java\jdk-20\bin\javaw.exe" -jar "%1" "%*"
then write this:
ftype JARFile="C:\Program Files\Java\jdk-20\bin\javaw.exe" -jar --module-path "C:\Program Files\Java\javafx-sdk-20\lib" --add-modules javafx.controls,javafx.fxml "%%1" "%%*"
Replace JARFile path with your path to javaw.exe, and modul-path with your path to javafx lib. If you are using NetBeans, Eclipse or IntelliJ, after -jar those are VM arguments/options you had to write to run it from application. You can write/copy it to notepad and save it with extension .bat (anyName.bat) right click and run it as administrator. Now if you write again:
ftype jarfile
you should get:
jarfile="C:\Program Files\Java\jdk-20\bin\javaw.exe" -jar --module-path "C:\Program Files\Java\javafx-sdk-20\lib" --add-modules javafx.controls,javafx.fxml "%1" "%*"
and it should work, on your computer. Notice double % and then single. The percent signs are doubled to escape them, because a single percent has a special meaning within a batch file. More about it here: https://ss64.com/nt/ftype.html
Upvotes: 0
Reputation: 6520
I had the same issue: if I doubleclick on a jar executable file, and my Java application does not start.
So tried to change manually also registry key, but it didn't help me. Tried to reinstall JDK newer/older without any result. (I have several versions of Java)
And I've solved it only using jarfix program. Jarfix automatically fixed .jar association problem on Windows system. (check regedit: PC\HKEY_CLASSES_ROOT\jarfile\shell\open\command
)
What says Johann Nepomuk Löfflmann:
The root cause for the problem above is, that a program has stolen the .jar association. If you have installed the Java Runtime Environment the first time, the file type called "jar" is assigned to javaw.exe correctly. "jar" is an abbreviation for "java archive" and javaw.exe is the correct program to execute a .jar. However, on Windows any program can steal a file type at any time even if it is already associated with a program. Many zip/unzip programs prefer to do this, because a jar is stored in the .zip format. If you doubleclick on a .jar, your pack program opens the file, rather than javaw runs the program, because your pack program ignores the meta information which are also stored in a .jar. In the Oracle bug database there is the low-priority report 4912211 "add mechanism to restore hijacked .jar and .jnlp file extensions", but it has been closed as "Closed, Will Not Fix".
You may also miss the file connection with .jar if you are using a free OpenJDK without an installer.
Notice: my OS is Windows 10, but logic is the same for 7, 8 and so on.
Helpful links:
https://windowsreport.com/jar-files-not-opening-windows-10/
https://johann.loefflmann.net/en/software/jarfix/index.html
Upvotes: 4
Reputation: 1375
I had this same issue, and searched the internet for a solution and none of the suggestions didn’t not open by double clicking the .jar
file.
In my case the reason is I have multiple JDK & JRE versions installed on my computer. Since I am a software developer working with several different versions for different clients I need to use multiple JDKs in my PC (Windows 10 Pro). So I do not want to change the system variables (i.e. JAVA_HOME
, JRE_HOME
or PATH
), instead I use command prompt to run java in user process whenever I wanted to use a different version.
When installing JDK it registers the .jar
file association with latest version we installed in the PC. If you right click on the .jar icon and select properties, it will show that file opens with “Java(TM) Platform SE Binary”. If we look at the registry key: HKEY_CLASSES_ROOT\jarfile\shell\open\command
, it will point to latest JDK version.
It is not a good idea (sometimes annoying) to change the registry key every time I want to run an app build from a different version.
So in my situation it is impossible to just double click the .jar
file to execute it. But instead I found a work around solution myself.
Scenario:
Multiple JDKs (1.7, 1.8, 9.0, 10.0, 11.0, and 12.0)are installed in the PC, so the latest installed was 12.0.
Problem
Want to double click an executable .jar
developed using JDK 1.8 and didn’t work
This is my work around solution:
.jar
file that you want to open. Change the text in the target (for example "D:\Dev\JavaApp1.8.jar"
)
To
"C:\Program Files\Java\jdk1.8.0\bin\javaw.exe
" -jar
"D:\Dev\JavaApp1.8.jar
"
Then click ok Double click the shortcut.
It should now open the app.
Upvotes: 0
Reputation: 3263
I tried all above steps to resolve the problem but nothing worked. I had installed both JDK and JRE.
In my case, one jar file was being opened by double click while other was not being opened. I examined those files and the probable reason was that which was being opened, was created using JAVA SE 6 and the one not being opened was created using JAVA SE 7. Although, the problematic jar file was being run via command prompt (java -jar myfile.jar).
I tried Right Click -> Properties -> Change to javaw.exe with both in JDK\bin directory and JRE\bin directory.
I was finally able to fix the problem by changing javaw.exe path (from JDK\bin to JRE\bin) in registry editor.
Go to HKEY_CLASSES_ROOT\jarfile\shell\open\command, the value was,
"C:\Program Files\Java\jdk-11.0.1\bin\javaw.exe" -jar "%1" %*
I changed it to,
"C:\Program Files\Java\jre1.8.0_191\bin\javaw.exe" -jar "%1" %*
and it worked. Now the jar file can be opened by double click.
Upvotes: 19
Reputation: 107
Had to try this:
cd
commandjava.exe -jar *filename*.jar
The app should pop right after that.
Upvotes: 0
Reputation: 4113
This is my way:
Create file bat (example openJar.bat).
@echo off
start javaw -jar "%1" %*
exit
Cut it and paste to C:\Program Files\Java\\bin (this step is unnecessary, but you should it).
Upvotes: 3
Reputation: 1608
change the default application for JAR files from java.exe to javaw.exe from your JAVA_HOME/bin folder.
This is because, java.exe is console application only, but JAR file needs a window rendered execution. Since javaw.exe is a window application, it is preferred for the execution of JAR files.
An alternative to this is that to some extent you can use command prompt to run your JAR files by simply using java keyword with -jar attrib.
Upvotes: 1
Reputation: 539
I created a project, JAR_Runnr, for precisely this. =)
http://projects.killerapplets.com/JAR_Runner/
Upvotes: 1
Reputation: 368
I had the problem that windows was blocking it from running (Windows 10 Pro). Right click icon> properties> in the bottom right corner it might tell you "Windows has blocked the functionality........" next to it there is a check box labeled "Unblock"> uncheck the box> apply> option to block goes away and then you can run it.
Upvotes: 2
Reputation: 2804
It's not a file association problem since you can launch the application correctly through command line.
The problem is when you double click on an associated file the application starts and runs with the file's path as base execution path. Any relative path will be computed from the file path and everything you try to load will probably be missing.
Nothing happens, even if you surround all of your entry point code with try/catch(Exception) because java s throwing Throwables and not Exceptions: to fix this in your java entry point surround the content of the main method with a try/catch(Throwable) (base class for Exception and Error) and debug.
Upvotes: 0
Reputation: 1336
If you have previously used the right click and opened with \path\to\your\javaw.exe then you will need to remove the following registry key.
[-HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jar]
Then run
C:\>assoc .jar=jarfile
C:\>ftype jarfile="C:\path\to\your\javaw.exe" -jar "%1" %*
Upvotes: 63
Reputation: 967
Your problem might also be inside your Java code setting, I mean, if your program somehow could not realize the main class/main file (entry point), it will not launch the the program/.jar (specially application built on IDE's). To solve that on an IDE :
Try running it now. Hope it helps
Upvotes: 1
Reputation: 4036
Installing the newest JRE fixed this for me.
(Even though I had a JDK and JRE(s) installed before.)
Upvotes: 0
Reputation: 44295
If you try unpopular's answer:
For Windows 7:
- Start "Control Panel"
- Click "Default Programs"
- Click "Associate a file type or protocol with a specific program"
- Double click
.jar
- Browse
C:\Program Files\Java\jre7\bin\javaw.exe
- Click the button Open
- Click the button OK
And jar files still fail to open (in my case it was like I never double clicked):
open the Command Prompt (to be safe with admin rights enabled) and type the following commands:
java -version
This should return a version so you can safely assume java is installed.
Then run
java -jar "PATHTOFILE\FILENAME.JAR"
Read through the output generated. You may discover an error message.
Upvotes: 14
Reputation: 181
For Windows 7:
.jar
C:\Program Files\Java\jre7\bin\javaw.exe
Upvotes: 16
Reputation: 121881
http://www.wikihow.com/Run-a-.Jar-Java-File
C:
for instance)..jar
extension)C:/Program Files/Java/...
, mark "Always open with", and select the javaw.exe
file.Upvotes: 1
Reputation: 3701
What is listed in right-click-> Open With ? Is some other program listed as the default program ? Is a Java Runtime listed ? If a Java Runtime is listed, you can open with it, and make it the default program to run with.
ie,
Right Click -> Properties -> Change -> C:\Program Files\Java\jre7\bin\javaw.exe
Upvotes: 39
Reputation: 69
I had the same problem with .jar files not opening on a double click. It turned out that I had two versions of Java installed (Java 6 and 7). Uninstalling Java 6 from Control Panel-> Uninstall a Program was what finally allowed .jar files to open on a double click without using the command window.
Upvotes: 6