18

Although this seems like a rather obvious question, I couldn't find the answer anywhere online.

After I create the jar file, I can run it successfully using the command line by saying

java -jar filename.jar

However, I want this file to be a bit more user-friendly, in other words, run on double click. For some reason when I double click the jar file the mac jar launcher (Jar\ Launcher.app) opens, pauses one second then closes. I appreciate the help.

Ps. I have made jar files through the command line, bluej, and eclipse, none of these ways solved the issue.

JFakult
  • 327
  • 1
  • 2
  • 16
  • Does your JAR reference resource files, such as images? Perhaps when you double-click it the working directory is in a different location. Also you may want to try opening /Applications/Utilities/Console -- there may be an error message there. – martinez314 Sep 17 '13 at 21:29

3 Answers3

14

I would create a shell script to enclose it in terminal:

#!/bin/bash
java -jar yourjarfile.jar
read -p 'Hit [Enter] to continue...'

I added pause, but unless your java application is immediately reaching termination, it shouldn't be necessary (you can stop the shell script after the "java" line).

Rogue
  • 11,105
  • 5
  • 45
  • 71
  • Hi, Rogue. Thanks for the advice. Right now I have a temporary file (a .command file that runs my jar file on double click). – JFakult Sep 18 '13 at 19:10
  • Nice, I believe you can add the "read -p" as well to pause it in .command, which will let you see runtime errors. – Rogue Sep 19 '13 at 15:39
2

There is a program on OS X called Jar Bundler that comes with your install of Xcode developer tools. You can use this to convert .jar files to native Mac OS X .app executables.

Hunter McMillen
  • 59,865
  • 24
  • 119
  • 170
1

You need Java WebStart, snippet from the link Java Web Start software provides the power to launch full-featured applications with a single click. Users can download and launch applications, such as a complete spreadsheet program or an Internet chat client, without going through lengthy installation procedures

Sajan Chandran
  • 11,287
  • 3
  • 29
  • 38