Live data from Hacker News

JDeploy – Deploy desktop Java apps as native bundles on Mac, Linux, and Windows

jdeploy.com

1–10 of 133 posts

Re: JDeploy – Deploy desktop Java apps as native bundles on Mac, Linux, and Windows

#2
This is a passion project of mine to make it easier to deploy Java desktop apps. I'm very happy with the result, as IMO, the process is orders of magnitudes simpler than what we had before. Some features include:

- Native installers for Mac, Windows, and Linux

- Build native bundles for all platforms from any platform (e.g. You don't need Mac to make a Mac app. You don't need Windows to make a Windows app, etc..)

- Auto updates. Your users automatically get the latest version on each launch

- Small installer bundle size (3mb compressed)

- No need to futz with Mac codesigning/notarization

- Instant download page so your users can download your app as soon as its published.

- Free, open source

Please take it for a spin, and let me know what you think.

Re: JDeploy – Deploy desktop Java apps as native bundles on Mac, Linux, and Windows

#3
This is so nice - it solves the biggest problem of Java desktop deployment in a very elegant way! I have wasted so much time figuring out native app packaging and code signing (not to mention figuring it out on different platforms). I was able to get this to work in about 30 minutes.

You are a hero - I hope this project really takes off! I dare say this is even better than Java Web Start (before it became hopelessly broken).

Re: JDeploy – Deploy desktop Java apps as native bundles on Mac, Linux, and Windows

#5
post #4

This looks like magic. Not sure how it generates native packages for multiple platforms without running on all of them.

The launcher, which is written in Go and C, is precompiled, so it can be reused in all apps. This means that, unlike jpackage, which requires you to build the Windows installer on Windows, the Mac installer on Mac, etc..., you can build for any platform from any platform.

The idea is to fulfill the promise of WORA all the way to deployment. Everything is built and configured in a cross-platform way, and then is deployed as first-class native bundles on each platform.

Re: JDeploy – Deploy desktop Java apps as native bundles on Mac, Linux, and Windows

#7
post #6

This does indeed solve a significant burden. Relying on npm seems a bit awkward. I might suggest using native packages, especially on mac; something like a DMG or .package.

> Relying on npm seems a bit awkward.

1. npm solves a few problems here. By publishing to npm, the app is instantly available to be downloaded and installed by users.

2. Auto updating. The launcher will automatically check for updates on launch, and download them if any are found so that users are always working with your latest version.

I may add support for other CDNs - and originally I just had it so you self host. But npm removes a lot fo complexity. It only takes a minute to create an account, and then you can publish.

> I might suggest using native packages, especially on mac; something like a DMG or .package. > Relying on npm seems a bit awkward.

1. npm solves a few problems here. By publishing to npm, the app is instantly available to be downloaded and installed by users.

2. Auto updating. The launcher will automatically check for updates on launch, and download them if any are found so that users are always working with your latest version.

I may add support for other CDNs - and originally I just had it so you self host. But npm removes a lot fo complexity. It only takes a minute to create an account, and then you can publish.

> I might suggest using native packages, especially on mac; something like a DMG or .package

The trouble with DMG and .pkg is that they need to be codesigned and notarized individually - which means you need a Mac and an Apple Developer account. Using jDeploy you don't need a Mac, and you don't need to worry about codesigning. This is because the installer is already signed and notarized. This probably the biggest pain point that I wanted to solve with jDeploy.

Re: JDeploy – Deploy desktop Java apps as native bundles on Mac, Linux, and Windows

#8
I don't really understand what this is offering. Maybe someone could explain..

Can't you already do this with jpackage or graalvm to create native bundles?

At least with jpackage you already get an installer, versioning and upgradeability. I haven't tried graalvm'd native compiler but it should be possible as well.

Re: JDeploy – Deploy desktop Java apps as native bundles on Mac, Linux, and Windows

#9
post #8

I don't really understand what this is offering. Maybe someone could explain.. Can't you already do this with jpackage or graalvm to create native bundles? At least with jpackage you already get an installer, versioning and upgradeability. I haven't tried graalvm'd native compiler but it should be possible as well.

> Can't you already do this with jpackage or graalvm to create native bundles?

With jpackage or graalvm you need a Windows machine to build your windows installer because it relies on 3rd party Windows tools for the installer. Likewise on Mac and Linux. Even worse, on Mac you need to Codesign and Notarize the app, which is painful every time.

> At least with jpackage you already get an installer, versioning and upgradeability.

With jDeploy, it will check for updates when the app launches, and will download them automatically, so your users are always on the latest version.

Re: JDeploy – Deploy desktop Java apps as native bundles on Mac, Linux, and Windows

#10
This looks extremely scary to me, they say you can avoid having to noterize your apps with apple and microsoft because their installers are already approved. What happens when someone publishes some malware application using their wrapped and noterized installer? Apple and microsoft will then flag all other applications that used jdeploy as malware as well since they are all relying on the same noterized installer application.

Super risky and definitely not a good approach from a security perspective.

Post reply on HN