jdeploy
warp
Our great sponsors
- Sonar - Write Clean Java Code. Always.
- CodiumAI - TestGPT | Generating meaningful tests for busy devs
- ONLYOFFICE ONLYOFFICE Docs — document collaboration in your environment
- InfluxDB - Access the most powerful time series database as a service
jdeploy | warp | |
---|---|---|
14 | 5 | |
307 | 1,841 | |
- | - | |
9.4 | 10.0 | |
2 months ago | about 3 years ago | |
Java | Rust | |
Apache License 2.0 | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
jdeploy
- How do you usually deploy Java Swing application in Windows machine, so that it can pass Microsoft Defender SmartScreen checking?
-
How do you package your Swing app?
See http://www.jdeploy.com/
-
How do I finish a JavaFX project?
You could try jdeploy as well.
-
Conveyor + AtlantaFX theme sampler case study
Why would someone use conveyor over https://www.jdeploy.com/
-
What does everyone use for GUI work?
Agree. For quite a while it was hard to deploy JavaFX applications but jpackage exists now. There are also tools out there which do everything for you :https://www.jdeploy.com/https://conveyor.hydraulic.dev/1.0/
-
New tool for packaging JVM apps, an alternative to jpackage
How does it compare to jdeploy?
- Any ideas to convert my jar file / eclipse project to exe?
- Is is possible to ship Java app with Embedded JVM?
-
Java: "write once, run everywhere" vs "build once, run everywhere"
You can try https://www.jdeploy.com. I didn't try it yet. I use GitHub Actions which allow me to deploy to all platforms by just pushing to the master branch (or whichever you set up). It's free for a certain amount of machine runtime minutes. Shouldn't be a problem for a personal application.
-
The Decline and Fall of Java on the Desktop Part 1 (1999-2005)
You build your Clojure app as an uberjar, yes. Only gotcha here is to remember "-Dcljfx.skip-javafx-initialization=true" so the JFX thread doesn't get started during build, and I've had no problems using Clojure's direct linking either. You use jlink[1] to create a custom runtime JRE image (this isn't strictly necessary if you're deploying to machines with a JRE but it cuts down on moving parts and gives you more control). jpackage[2] then takes that runtime image and your uberjar and creates installers for Mac/Windows/Linux. Both are command line tools, and we just have GitHub Actions that cut new releases for each platform when we tag something with a new version.
Worth also keeping an eye on jDeploy[2] which adds extra goodies like auto updates, at the cost of some npm shenanigans. Not something I've played with yet though.
1: https://docs.oracle.com/en/java/javase/17/docs/specs/man/jli...
2: https://docs.oracle.com/en/java/javase/17/docs/specs/man/jpa...
warp
-
Cross-platform, cross-compiled JavaFX desktop application
KeenWrite is my free, open-source, cross-platform desktop Markdown text editor developed using JavaFX. The installer script uses warp-packer to create installation-free self-extracting binaries for Windows and Linux.
-
The Decline and Fall of Java on the Desktop Part 1 (1999-2005)
My desktop text editor[1] is written using JavaFX and leans on Warp Packer[2] to create installer-free, multi-platform executable binaries (without jlink). A user contributed a new dark theme[3], which blends nicely with the desktop.
The JavaFX-based WebView (an HTML rendering component) is lauded, but has no direct API to control the scroll position and is itself a memory hog. Scrolling must be handled through JavaScript, and that indirection is as unwieldy as you can probably imagine. FlyingSaucer is a workable alternative to WebView, but comes with numerous technical issues that rear themselves when embedding a Swing widget inside a JavaFX application---as I discovered during development.
Were I to start from scratch, I would definitely seek out alternative cross-platform programming languages for desktop application development.
[1]: https://github.com/DaveJarvis/keenwrite
-
In support of single binary executable packages
"Java -- possible, but you'll need a startup script to just call java -jar some-tool.jar; (also not a good fit for short-lived tools, mainly due to startup times;)"
Two technologies to look at:
* Warp Packer -- https://github.com/dgiagio/warp/
* Liberica Native Image Kit -- https://bell-sw.com/pages/liberica-native-image-kit/
Warp Packer bundles my JavaFX desktop application, KeenWrite into single binary executable files:
* https://github.com/DaveJarvis/keenwrite/releases/download/2.... (Linux)
* https://github.com/DaveJarvis/keenwrite/releases/download/2.... (Windows)
* https://github.com/DaveJarvis/keenwrite/releases/download/2....
The start-up time for the first launch of the .bin or .exe is slow because it unpacks to a user directory. Subsequent starts are fine enough, even when running from the command-line as a short-lived task. Here's the script that creates the self-contained executable files:
https://github.com/DaveJarvis/keenwrite/blob/master/installe...
To create a release for all three files, I run a single shell script from a build machine:
https://github.com/DaveJarvis/keenwrite/blob/master/release....
I could probably generate a binary for MacOS, but not enough people have asked.
What are some alternatives?
Getdown - Download, Install, Update
artipie - Binary Artifact Management Tool
cljfx - Declarative, functional and extensible wrapper of JavaFX inspired by better parts of react and re-frame
HumbleUI - Clojure Desktop UI framework
jlink.online - Build optimized Java runtimes in your browser!
Main - 📦 The default bucket for Scoop.
AudioBookConverter - Improved AudioBookConverter based on freeipodsoftware release (mp3 to m4b converter)
JavaPackager - :package: Gradle/Maven plugin to package Java applications as native Windows, MacOS, or Linux executables and create installers for them.
maven-jpackage-template - Sample project illustrating building nice, small cross-platform JavaFX or Swing desktop apps with native installers while still using the standard Maven dependency system.
fruit-economy