Repository navigation
jr 1.2.0
Superseded by jr 1.2.1. 1.2.0's Windows exes carry no version information, and Windows Defender flags its jr.exe as a trojan (a false positive). 1.2.1 is the same code with that fixed.
A Java launcher: one native file that carries its config, fetches and verifies its jar, finds or installs Java, and updates itself. Now for macOS as well as Windows.
New since 1.1.0:
- macOS: jr-macos (universal), with the arm64 and x86_64 slices on their own. Each is signed ad hoc. Install with
curl -fsSL https://github.com/jarrunner/jr/releases/latest/download/install.sh | sh; curl sets no quarantine flag, so Gatekeeper does not block it. - -Xjr:doctor shows which Java a launch would use and why; -Xjr:repair fixes what jr made (AOT caches, a changed jar, damaged JDKs). -Xjr:java.home=PATH picks a Java by its home folder.
- A launch that finds a broken cache or JDK heals itself rather than failing.
- Error dialogs share one standard layout, copy their message with one click, and close with Esc.
- Unicode paths and arguments throughout (Windows wide-character APIs, UTF-8 on macOS).
Assets: jr.exe and jr-windows-x86_64.exe are the same x86_64 build. jr-windows-arm64.exe is the ARM64 cross-build. The jr-noicon-* exes are the same builds without the jr icon, for stamping your own. jr-macos is the universal macOS binary, and jr-macos-arm64 and jr-macos-x86_64 are its two slices.
Where these binaries come from: built from this tag by the repository's release workflow on GitHub's Windows and macOS runners (mvn package, TeaVM 0.16.0 with our C-backend fixes from io.github.jarrunner.teavm on Maven Central). Before publishing, the workflow checks that the exes and binaries run, and that the x86_64 macOS slice runs under Rosetta. Check a download against SHA256SUMS. The binaries are not code-signed.
To build a branded launcher for your own app in your Maven build, use io.github.jarrunner:jr-maven-plugin. The 1.1.0 plugin on Maven Central bundles the 1.1.0 launcher; a plugin release with this build follows.
Full Changelog: v1.1.0...v1.2.0