Skip to content

Releases: jbangdev/jbang

v0.137.0

13 Feb 23:31

Choose a tag to compare

bugfixes - should probably been a patch version :)

@wfouche fixed bugs nd added more documentation around how to build executables.

Changelog

🐛 Fixes

  • 03cdf04 fix: upgrade Gradle to 8.14.4 (#2384)
  • d7cedb7 fix(deps): upgrade Java to 21.0.10-tem (#2386)
  • 821679a fix: fixes ImplicitCatalogRef to generate proper urls
  • c85f3e9 fix: do not overwrite the main method parameters (#2379)

📝 Documentation

  • 0440de3 docs: document how to create native images using jbundle (#2382)
  • f396b53 docs: missing --name flag in alias add (#2385)

Contributors

We'd like to thank the following people for their contributions:
GitHub, Greg Chabala, Max Rydahl Andersen, Werner Fouché, allcontributors[bot]

v0.136.0

03 Feb 18:22

Choose a tag to compare

First release of 2026 - biggest fix is that a concurrency issue found when building or running lots of projects concurrently - so now you can build and run without risk of it failing.

Also added -x option to always get stacktrace on errror so you don’t need full —verbose.

Add central-portal-snapshots for easy testing of upcoming dependencies from maven central.

And ability to use relative paths, like ./build/repo that’s useful when wanting to use Gradle dependencies but prefer not to publish to local maven repo.

Enjoy!

Changelog

🚀 Features

  • 2814a22 feat: relative repos. --repos=local=./build/repo (#2376)
  • 17ff08e feat: dont fail on concurrent build cache access (#2378)
  • 190ceb0 feat: add central-portal-snapshots maven repo shorthand/alias (#2371)
  • fb5874c feat: -m supports pattern matching (#2364)

Contributors

We'd like to thank the following people for their contributions:
GitHub, Max Rydahl Andersen

v0.135.1

13 Dec 19:47

Choose a tag to compare

A fix for proper downloading of Java on Alpine Linux's that requires musl rather than libc;
and documentation on how to work with Windows terminals and their UTF-8/emojii (lacking) support.

Changelog

🐛 Fixes

  • c72aa02 fix: use 17 as minium for alpine (#2354)
  • 0ae202a fix: describe how to configure UTF-8 support for Windows (#2356)

Contributors

We'd like to thank the following people for their contributions:
Copilot, GitHub, Max Rydahl Andersen, Werner Fouché

v0.135.0

30 Nov 15:49

Choose a tag to compare

Release fixing a six old bug/mistake - thanks @wfouche ! :)

JBANG_JAVA_OPTIONS was mistakenly being applied to both jbang itself
and the applications launched by JBang. Now its clearly separated which is less confusing and
more controllable.

Thus if you for some reason used JBANG_JAVA_OPTIONS to configure global flags for JBang and JBang launched apps you now should set JBANG_APP_JAVA_OPTIONS to have them applied to the apps.

Changelog

🐛 Fixes

  • 85562e3 fix: use JBANG_APP_* rather than JBANG_* for env config (#2344)

📝 Documentation

  • 1d3a606 docs: new JBANG_APP_JAVA_OPTIONS environment variable (#2345)

Contributors

We'd like to thank the following people for their contributions:
GitHub, Max Rydahl Andersen, Werner Fouché

v0.134.3

27 Nov 08:25

Choose a tag to compare

Quick bugfix release as jbang init script.java make me a sandwich was broken.

Changelog

🐛 Fixes

🧰 Tasks

  • 0797259 chore: have name and workflow line up/match to reduce confusion
  • 1339405 chore: use pattern for download
  • 34b5f03 chore: enable option to skiptests in ci-build
  • 7e2bd36 chore: use the proper step
  • e1cb623 chore: disable tests for earlyaccess for now
  • 202b959 chore: split builds up in steps for reuse
  • 9d3e54c chore: split website check to separate job
  • a39a6da chore: temporarily disable renovatebot due to repeat reschedule of builds
  • 53f5bba chore: stop any concurrent main builds of earlyaccess
  • 7cda5e3 chore: dont run ci-build on main as early-access will do that
  • e2cf877 chore: setup workflow call
  • ac0a26c chore: setup workflow call
  • 6dabe3c chore: fix uses ref
  • ce571cb chore: fix uses ref
  • a7eea2a chore: fix uses ref
  • ca58030 chore: add initial earlyaccess build

📝 Documentation

  • dee2f24 docs: add docs and samples of vhs.tape for recordings (#2343)

Contributors

We'd like to thank the following people for their contributions:
GitHub, Max Rydahl Andersen, Werner Fouché

v0.134.2

24 Nov 13:28

Choose a tag to compare

Almost too much...

Bunch of small fixes and a few "big" features in this round, deps, jdk exec, JBang AI and beginnings of native image build of jbang.

deps add & deps search

You can now use jbang deps add group:artifact:version myapp.javato add dependencies to a file; but even more interesting isjbang deps search` which let you search your local maven repository + maven central for your dependency.

You can do jbang deps search log4j myapp.java and it will pre-search for log4j and once you select the artifact you want add it to myapp.java - or simply do jbang deps search myapp.java and you will get interactive UI directly.

At the momment it works with .java and build.jbang - but can also add other formats if there are interest.

Try it out and give feedback :)

jdk exec

@quintesse added support for running commands with your favourite java environemnt.

jbang jdk exec 11 <your command>

will run your command with Java 11 setup.

Better missing main error info

When running a jar from the internet; they might not configured or set a Main-class so you have to go scrambling to find the right class name to use. This release fixes that.

Before:

jbang org.jbox2d:jbox2d-testbed:2.2.1.1
[jbang] [ERROR] no main class deduced, specified nor found in a manifest
[jbang] Run with --verbose for more details. The --verbose must be placed before the jbang command. I.e. jbang --verbose run [...]

Now:

[jbang] [ERROR] No main class deduced, specified nor found in a manifest, but found these candidates:

 - org.jbox2d.testbed.perf.MathPerf
 - org.jbox2d.testbed.framework.TestbedMain
 - org.jbox2d.testbed.perf.PoolingPerf
 - org.jbox2d.testbed.perf.StackTest
 - org.jbox2d.tests.math.SinCosTest

Use -m <main class> to specify a main class.
[jbang] Run with --verbose for more details. The --verbose must be placed before the jbang command. I.e. jbang --verbose run [...]

Yes, it still fails - but you get the list of possible main methods to run.

Give jbang -m org.jbox2d.testbed.framework.TestbedMain org.jbox2d:jbox2d-testbed:2.2.1.1 a try :)

JBang AI

Everyone does AI, right ? :) JBang actually had it for two years now but required use of --preview flag. In this release we remove that need and instead of JBangGPT call it JBang AI:

jbang init tetris.java make me a game of tetris using javafx

If you have one of the supported LLM providers configured you can get something like:

https://bsky.app/profile/did:plc:patay43zm6erqb6ph6emtojb/post/3m67egd46cw2a

In this release we added support auto detecting OpenAI, Google, OpenCode, Ollama (local FTW) and more - see list at https://www.jbang.dev/documentation/jbang/latest/templates.html#auto-detection

But if auto detecting does not work there are command line options to allow override:

jbang init --ai-provider=google --ai-api-key=SECRET --ai-model=othermodel sandwich.java make me one

Native Image Build of JBang

JBang now has native-image builds using GraalVM native image on each PR, this release is test of it working. Planned that next release will include it as an option for the downloads/bootstrap.

What's Changed

  • fix: new devkitman fixes excessive temp folders by @quintesse in #2246
  • feat: let build.jbang auto-select sources by @quintesse in #2248
  • feat: add mvnpm as a repo shortcut by @maxandersen in #2249
  • fix: improve fatjar export by @quintesse in #2228
  • feat: make it possible to run jitpack URLs directly by @quintesse in #2245
  • dynamicdebug by @maxandersen in #2250
  • fix: resolved deprecation warnings by @wfouche in #2256
  • fix: unnamed package error with export fatjar by @quintesse in #2258
  • feat: added jdk exec command by @quintesse in #2221
  • fix: app install my-app-1.2.jar becomes my-app by @maxandersen in #2259
  • fix: fixed issue with PowerShell not behaving correctly and added IT tests by @quintesse in #2261
  • feat: POC of jbang native image compiled by @maxandersen in #2262
  • chore: add parent suite with os/arch/native or java in title + native image fixes by @maxandersen in #2266
  • fix: devkitman now passed default Java version by @quintesse in #2264
  • fix: better logging for jdk providers by @maxandersen in #2233
  • chore: merge build and test of native image to not have to wait for test results by @maxandersen in #2268
  • chore: bring back multi java test by @maxandersen in #2269
  • fix: cleanup annoying IDE warnings; no functional changes by @maxandersen in #2276
  • fix: passing "all" for jdk providers works again by @quintesse in #2280
  • fix(deps): update dependency org.wiremock:wiremock to v3.13.2 by @renovate[bot] in #2173
  • fix(deps): update dependency eu.maveniverse.maven.nisse:core to v0.6.2 by @renovate[bot] in #2210
  • chore(deps): update github/codeql-action digest to f94c9be by @renovate[bot] in #2157
  • chore(deps): update jbangdev/jbang-action docker digest to b3fe2cb by @renovate[bot] in #2160
  • fix(deps): update dependency eu.maveniverse.maven.nisse.sources:os-source to v0.6.2 by @renovate[bot] in #2211
  • chore(deps): pin graalvm/setup-graalvm action to eec4810 by @renovate[bot] in #2265
  • chore(deps): update gradle/actions digest to 748248d by @renovate[bot] in #2158
  • chore(deps): update Java to 21.0.9-tem by @wfouche in #2279
  • chore(deps): update docker/login-action digest to 5e57cd1 by @renovate[bot] in #2286
  • chore(deps): update actions/checkout digest to 71cf226 by @renovate[bot] in #2273
  • fix(deps): update dependency org.aspectj:aspectjweaver to v1.9.25 by @renovate[bot] in #2168
  • chore(deps): update dependency maven-wrapper to v3.3.4 by @renovate[bot] in #2209
  • chore(deps): update mxschmitt/action-tmate digest to c0afd6f by @renovate[bot] in #2287
  • fix(deps): update eu.maveniverse.maven.mima dependencies to v2.4.36 by @renovate[bot] in #2288
  • fix(deps): update dependency org.junit:junit-bom to v5.14.1 by @renovate[bot] in #2299
  • chore(deps): update actions/checkout action to v5 by @renovate-bot in #2301
  • chore(deps): update github/codeql-action action to v4 by @renovate-bot in #2305
  • feat: jbang deps add by @maxandersen in #2260
  • docs: cross-platform compatibility updates by @wfouche in #2331
  • feat: if no main found; print out possible candidates by @maxandersen in #2333
  • feat: JBangGPT -> JBang AI with multiple providers and no-preview by @maxandersen in #2324

New Contributors

Full Changelog: https://github.com/jbangdev/jbang/compare/v0.132.1...v0.134.2## Changelog

🐛 Fixes

  • 31cb778 fix: release use explicit java version

Contributors

We'd like to thank the following people for their contributions:
Max Rydahl Andersen

v0.132.1

04 Oct 11:18

Choose a tag to compare

Fix regression affecting graalpy integration.

Changelog

🐛 Fixes

  • 20c9632 fix: moved weather.java to examples folder (#2205)
  • bd16fc8 fix: properly pass directives to integration

🧰 Tasks

  • 23c5bd7 chore: add JBang-Version to manifest.mf

📝 Documentation


Contributors

We'd like to thank the following people for their contributions:
GitHub, Max Rydahl Andersen, Tako Schotanus, Werner Fouché, xfl12345

v0.132.0

28 Sep 12:17

Choose a tag to compare

Quick fix release to have Maven artifact download not use useragent that contains "Java" as cloudflare security rules denies them access.

Changelog

🐛 Fixes

  • 2c6d0d3 fix: dont have java in useragent for maven requests (#2234)
  • 1ee2d0e fix: make bootstrap.sh harder to break (#2232)
  • e76406b fix: update Java for command-line use to JDK 21 (#2222)

🔄️ Changes

🧪 Tests

  • 2f4298b test: added IT test for integrations

📝 Documentation


Contributors

We'd like to thank the following people for their contributions:
Copilot, GitHub, Max Rydahl Andersen, Tako Schotanus, Werner Fouché

v0.131.0

16 Sep 20:33

Choose a tag to compare

Today is Java 25 release and for that this release has two things:

  1. jbang init hello.java now will add //JAVA 25+ when needed to make sure you and users of your code will have a working file. Go enjoy the simplicity of Java 25 main() scripts!

  2. We now no longer include 'java' in the user agent. CloudFlare seem to have default rule that blocks any http request with "java" anywhere in the string. Should stop the issue where users saw weird 403 issues when using JBang.

Thanks to bug report from @reportmill that lead to that discovery.

Changelog

🚀 Features

  • 17d8557 feat: requestedJavaVersion honored by init templates (#2206)

🐛 Fixes

  • 9d527e3 fix: avoid java in user agent (#2213)
  • b19bbae fix: java version validation prints a more human friendly exception. Fixes #812 (#2128)
  • 2e1393c fix: now really prevent exceptions for missing sources
  • ef42bdf fix: make tests faster by doing less (#2207)
  • 97c860d fix(deps): update dependency io.qameta.allure:allure-bom to v2.29.1 (#2166)
  • 385e575 fix(deps): update slf4j monorepo to v1.7.36 (#2171)
  • 473bc18 fix(deps): update dependency org.junit:junit-bom to v5.13.4 (#2172)
  • 944a7a8 fix: improved documentation formatting (#2203)

🧪 Tests

  • ac8ebd0 test: added new wiremock mappings

🧰 Tasks

  • f29738b chore: absolute //FILES path no longer throw exception
  • 959fe55 chore: made SourceSet.getStableIdInfo() more resilient
  • e032923 chore: improved info docs ouput somewhat
  • 066effc chore(deps): update plugin com.diffplug.spotless to v7.2.1 (#2175)

  • 776fac4 [minor] release
  • 1cbf085 # This is a combination of 2 commits.

Contributors

We'd like to thank the following people for their contributions:
GitHub, Max Rydahl Andersen, Tako Schotanus, Werner Fouché, renovate[bot]

v0.130.0

10 Sep 00:48

Choose a tag to compare

Bunch of cleanups/doc improvements and a new feature: completion and setup support for Fish shell.

Meaning jbang will now install it on PATH when using fish shell, and you can do:

just jbang completion -s fish > ~/.config/fish/completions/jbang.fish

to enable completion of jbang in fish.

Changelog

🚀 Features

🐛 Fixes

  • e4999d2 fix: only activate dev.jbang logging when verbose (#2199)
  • 8db46d4 fix: link to installation docs (#2179)
  • 1df6dd6 fix: improved WebServer example (#2200)
  • ce81854 fix: first catalog is now minimal (#2197)
  • b25eaec fix: Install adds ~/.jbang/bin to PATH via .config/fish/conf.d/jbang.fish (#2191)
  • 727ef05 fix: have way to force/encourage jbang to use ui not console/tty (#2174)
  • a6c8006 fix(deps): update eu.maveniverse.maven.mima dependencies to v2.4.33 (#2170)
  • 32b8d49 fix(deps): update dependency info.picocli:picocli to v4.7.7 (#2165)
  • 4db5e80 fix: group by source repos when possible. no big gradle update anymore and move to json5 (support comments)
  • c3f6da8 fix: renovate[bot] should ignore major version updates to wrappers for maven and gradle (#2139)
  • a25cffb fix: add dry run to justfile
  • bd32741 fix: code should not rely on MavenCoordinate equals/hashcode (#2135)

🔄️ Changes

  • e969874 refactor: made findNearestWith() more flexible
  • 20230ca refactor: made plugin detection code more flexible

🧰 Tasks

  • 8f552e0 chore: add download link
  • 57b0761 chore: always add links
  • 0c62370 chore: use params in all
  • bf4fd98 chore: fix allure link
  • 839abf1 chore: use attempt
  • dfae211 chore: print allure link
  • 3e3648b chore(deps): update actions/checkout digest to 08eba0b (#2159)
  • aa4bc06 chore(deps): update mikepenz/action-junit-report digest to 3585e95 (#2161)
  • 74359c7 chore(deps): update plugin io.toolebox.git-versioner to v1.6.7 (#2162)
  • 438aaf3 chore(config): migrate config renovate.json5 (#2169)
  • cc12dd3 chore: group eu.maveniverse in renovatebot
  • 6d9fb21 chore(deps): update codecov/codecov-action digest to 18283e0 (#2155)
  • 4497615 chore(deps): update Gradle distribution to 8.14.3 (#2141)
  • 74cfa8a chore(deps): upgrade Gradle to 8.14.3 (#2145)
  • c950a33 chore(deps): pin dependencies (#2154)

🛠 Build

📝 Documentation

  • 54a342f docs: update cli docs
  • c723707 docs: fix type of sources
  • a4b5592 docs: document fish 3.3.0+ honors jbang shebang line
  • 804c05b docs: describe how to update dependencies (#2180)

Contributors

We'd like to thank the following people for their contributions:
GitHub, Max Rydahl Andersen, Michael Vorburger, Tako Schotanus, Tamas Cservenak, Werner Fouché, allcontributors[bot], renovate[bot]