Convert .jar to an OSX executable?

后端 未结 5 1139
情话喂你
情话喂你 2020-11-27 15:08

I made a Java application which I would like to distribute on Windows, OSX and Linux without distributing a jar file. I used the great Windows exe wrapper http://launch4j.so

相关标签:
5条回答
  • 2020-11-27 15:46

    You can also package your application with the JarBundler Ant task:

    http://informagen.com/JarBundler

    <jarbundler dir="release"
            name="MyApp"
            mainclass="org.foo.myapp.Main" 
            jar="myapp.jar" />
    
    0 讨论(0)
  • 2020-11-27 15:46

    Github user Jorl17 made an excellent Python script called jar2app that does this with one simple command. It even lets you customize the app icon.

    https://github.com/Jorl17/jar2app

    Just install it, follow the instructions, and you get the .app file.

    0 讨论(0)
  • 2020-11-27 15:57

    If you do not have a Mac to build this on (or want to integrate it into an existing build chain), you might want to have a look at the OS X Application Bundle Plugin for Maven.

    This will (if run on Linux or Windows) create a zip that will unzip as a proper Mac application. If you run Maven on a Mac, it can also make a DMG.

    0 讨论(0)
  • 2020-11-27 15:58

    JarBundler is obsolete, but there is a (better) official replacement: the javapackager tool.

    For OSX, A simple, well explained, step by step tutorial on how to create a DMG from java is here: http://centerkey.com/mac/java/ . For other platforms, you just need to modify the example by using the proper switches in javapackager.

    0 讨论(0)
  • 2020-11-27 16:05

    Yes, on Mac OS X there is a program called Jar Bundler that is installed when you install the free (assuming that you already own a copy of Mac OS X) Xcode Developer Tools that allows you to bundle a JAR file inside a native Mac OS X "*.app" application bundle with a nice and shiny icon just like other apps.

    Update
    The JAR bundler doesn't exist on later versions of OS X. As a workaround, you can manually create an OS X project that invokes Java. Or, there are a variety of build system extensions that do a similar thing; for example, the gradle-macappbundle plugin for Gradle will create such a wrapper app.

    0 讨论(0)
提交回复
热议问题