Live data from Hacker News

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

jdeploy.com

111–120 of 133 posts

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

#111

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..) - A…

Interesting project. We build and maintain a significant cross-platform JavaFX app, and use a combination of JLink (to create a smaller executable with bundled JRE), install4j (for the native .app/.exe wrapper) and Packages (macOS)/InnoSetup (Windows) for the installer. The installer has a non-trivial amount of scripting under the hood so being able to customize that is really important, at least for us. I wonder if…

> But hats off, cool project!

Thanks!

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

#112

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..) - A…

> Small installer bundle size (3mb compressed)

Is the 3M a launcher to download JRE & .jar files on-demand?

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

#113
post #107

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..) - A…

Interesting idea, though I thought the orig. goal of Java was to avoid this in the first place. Btw, font on website hurts my eyes, not easy to read. Its a font you'd use only by exception ie. italic usage (e.g. a quote). Not for a whole website.

> Interesting idea, though I thought the orig. goal of Java was to avoid this in the first place.

IMO this is moving back in the direction of the original WORA philosophy of Java. jDeploy is designed to be cross platform. No platform-specific build settings, to as much extent possible. After the death of Applets and WebStart, the new direction of bundle a JRE with every app - and rely on platform-specific 3rd-part tools to create the bundles never felt right to me.

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

#114

Very interesting! I would love to use, but my use case it's a bit weird : - I need to not use public npm. A private npm repository or a simple old plain http server would be fine. As we only need to give an URL to our clients to download it. - There is a way to control to what version auto updates ? I need to avoid that the client app auto updates to the wrong version, before the server and the database are updated.

> I need to not use public npm.

In a previous iteration everything was designed to be self-hosted, but decided to focus on npm support because it made things much simpler. I'll be re-exposing the self-hosting, and private npm options as demand dictates.

> There is a way to control to what version auto updates?

Internally it supports some rich update rules. It is possible to generate apps that are pegged to a specific version (e.g. 1.0.7), or that will only update build updates (e.g. 1.0.), or minor updates (e.g. 1.). By default they don't update to pre-releases (e.g. 1.0.1-alpha.1), but this is configurable by the user.

I haven't documented this yet because I want to avoid confusion at the beginning as much as possible. There are dozens of variations that could be supported, but I'm trying to hit the 90% use case out of the box first...

> I need to avoid that the client app auto updates to the wrong version, before the server and the database are updated.

You could just bake that into your client (detect the server version). Alternatively, just wait until the server is updated before you publish the client update. This could be triggered in CI as well.

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

#115
post #112

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..) - A…

> Small installer bundle size (3mb compressed) Is the 3M a launcher to download JRE & .jar files on-demand?

The launcher is about 3 megs compressed. The actual jar files and JVM are downloaded on demand in the $HOME/.jdeploy directory.

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

#116
post #87

Earlier quoted context omitted.

> The installer application simply installs the app. It doesn't in itself run any of the app's code. The installed app doesn't need to be codesigned and notarized Wait, then doesn't that mean Apple's intent there is broken? I mean if you can bypass its controls on installing unsigned apps by merely wrapping an unsigned (possibly malicious) app in a signed installer, then what's the point?

Very naive question but is it different from what npm, pip, etc. let you do already? Does the app installed this way get more permissions coming from a signed installer? I'm not familiar with OSX security model.

> Very naive question but is it different from what npm, pip, etc. let you do already?

npm, pip, etc.. are CLI install tools. jDeploy supports CLI app distribution using npm also. But the key difference is that jDeploy provides double-clickable installers for the apps. If you're distributing a desktop app, it should be installable in the desktop (IMO). Making users go to the command-line to install the app is actually prohibitive for the average user. Even when your userbase is programmers, I find that making them go into the command-line loses them.

> Does the app installed this way get more permissions coming from a signed installer? I'm not familiar with OSX security model.

Since Catalina, you can't download and run a Mac app in any form unless it is signed and notarized. Using the signed and notarized installer allows you to get around this limitation.

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

#117
post #107

Earlier quoted context omitted.

Interesting idea, though I thought the orig. goal of Java was to avoid this in the first place. Btw, font on website hurts my eyes, not easy to read. Its a font you'd use only by exception ie. italic usage (e.g. a quote). Not for a whole website.

> Interesting idea, though I thought the orig. goal of Java was to avoid this in the first place. IMO this is moving back in the direction of the original WORA philosophy of Java. jDeploy is designed to be cross platform. No platform-specific build settings, to as much extent possible. After the death of Applets and WebStart, the new direction of bundle a JRE with every app - and rely on platform-specific 3rd-part to…

I definitely will not use jDeploy on Linux. Downloaded JVM, without disto-specific patches, is useless, because it will hang or segfault.

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

#118
post #117

Earlier quoted context omitted.

> Interesting idea, though I thought the orig. goal of Java was to avoid this in the first place. IMO this is moving back in the direction of the original WORA philosophy of Java. jDeploy is designed to be cross platform. No platform-specific build settings, to as much extent possible. After the death of Applets and WebStart, the new direction of bundle a JRE with every app - and rely on platform-specific 3rd-part to…

I definitely will not use jDeploy on Linux. Downloaded JVM, without disto-specific patches, is useless, because it will hang or segfault.

I have received a few reports on Linux. I'm working on it. Literally this is the reason why jDeploy is helpful. I've spent 2 years working out many details. Every OS/Version/distribution has needed some special care. Up to now I've been working with a single Ubuntu 20 box for my linux testing. Today, in response to these reports, I'm setting up a number of Linux VMs to test other variations to get to the bottom of this. I should have these issues resolved shortly.

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

#119

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..) - A…

Interesting project. We build and maintain a significant cross-platform JavaFX app, and use a combination of JLink (to create a smaller executable with bundled JRE), install4j (for the native .app/.exe wrapper) and Packages (macOS)/InnoSetup (Windows) for the installer. The installer has a non-trivial amount of scripting under the hood so being able to customize that is really important, at least for us. I wonder if…

Is the lack of notarization truly an issue? Aside from demonstrating that the creator has a paid subscription to the developer program, what does notarization accomplish that isn't already handled by XProtect (i.e. a YARA scan) and the Malware Removal Tool (MRT)?

Are there any examples anywhere of malware that has slipped through the client-side XProtect pre-flight checks, but that the server-side notarization checks have caught? Most independent macOS security literature I've read implies that notarization and code-signing is more about retaining centralized control of the app distribution process, but does not actually contribute anything to the malware mitigation tools that have been built into macOS for a very long time.

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

#120

Earlier quoted context omitted.

There's an exciting desktop port of https://developer.android.com/jetpack/compose done by Jetbrains: https://github.com/JetBrains/compose-jb

I was thinking that this combo can really change the native desktop development landscape, it's still too early to tell but if you can solve development speed, performance, looking good and easy deployment in one stack it would really improve over Electron based apps.

I agree. Once you fight through the initial project setup, and solve the deployment difficulties (jDeploy), Java is a remarkably good platform for Desktop development. The sheer number of libraries available to you with a simple copy/paste dependency snippet, is unrivalled in any other ecosystem.
Post reply on HN