Надо накидать утилиту на 30 строк, дёрнуть API, распарсить JSON, прогнать миграцию?
И вот ты уже создаёшь Maven-проект, пишешь pom.xml, городишь src/main/java/com/example/..., добавляешь зависимость, билдишь jar. Полчаса церемоний ради скрипта, который запускается один раз.
jbang убирает всё это. Один .java файл и он запускается как скрипт. Зависимости объявляются прямо в коде комментарием //DEPS, jbang сам тянет их с Maven Central, компилирует и запускает:
///usr/bin/env jbang "$0" "$@" ; exit $?
//DEPS com.squareup.okhttp3:okhttp:4.12.0
//JAVA 21+
import okhttp3.*;
public class fetch {
public static void main(String[] args) throws Exception {
var client = new OkHttpClient();
var req = new Request.Builder()
.url("https://api.github.com/repos/jbangdev/jbang")
.build();
try (var resp = client.newCall(req).execute()) {
System.out.println(resp.body().string());
}
}
}
jbang fetch.java — и всё работает. Никакого pom.xml, никакого build-шага, никакой структуры папок.Что ещё умеет:
— запускать скрипты прямо по URL или из GitHub Gist (jbang https://.../script.java);
— генерить нативные бинарники через GraalVM;
— ставить скрипт как системную команду (jbang app install);
— экспортить в полноценный Maven/Gradle-проект, когда прототип дорос до проекта.
Поддерживает .java, .jsh, .kt, .groovy и даже .md. А если на машине нет JDK, скачает сам.
Идеален для CLI-тулзов, автоматизации, обучения и тех моментов, когда писать Python только потому что «на Java долго» — обидно.
📱 Репозиторий
══════ Навигация ══════
Вакансии • Задачи • Собесы
🐸 Библиотека джависта
#Enterprise