java jbang 工具让java作为脚本语言
JBang 是一款能够让 Java 开发者像使用 Python/nodejs/Shell 脚本一样,极其简便地编写和运行 Java 程序的命令行工具。
尤其是单文件的简单场景(自动化运维、命令行小工具), 使用 jbang 完全可以代替这些常用的脚本语言,而且具备如下优势:
- java 编码难度更低, 编译型语法更严谨, 有更智能的IDE工具
- java 生态更好,有大量的maven第三方包可供使用。
- 一个命令即可使用VS code等工具编辑当前的脚本java文件, jbang edit myjava.java
- 一个命令即可轻松挂在调试器, jbang run --debug myjava.java
- 直接运行指定 url 对应的脚本
- 在 java 文件顶部增加 shebang 启动支持,即可在linux中像执行sh一样运行。 比如 ///usr/bin/env jbang "$0" "$@"
JBang 常用命令一览表
JBang 的命令行界面(CLI)非常丰富,涵盖了从脚本创建、编辑到运行以及依赖和 JDK 管理的全过程。
以下是 JBang 的常用核心命令汇总:
| 基础操作 | jbang init file | 初始化一个新的脚本(如 hello.java),自动生成带有 Shebang 的模板文件。 |
|---|---|---|
| jbang script | 运行指定的 Java、Kotlin、Groovy 或 JShell 脚本。 | |
| jbang run script | 显式调用运行命令,支持附加参数如 --debug 或 --deps。 | |
| jbang build file | 仅编译脚本并存入本地缓存,不立即执行。 | |
| 开发辅助 | jbang edit file | 在本地 IDE(如 VS Code, IntelliJ)中打开脚本并配置临时的工程环境进行编辑。 |
| jbang info file | 显示脚本的元数据,包括依赖关系、使用的 JDK 版本等信息。 | |
| jbang export type | 将脚本导出为可分发的格式,如 jar, native (原生二进制) 或 maven 项目。 | |
| JDK 管理 | jbang jdk list | 列出系统中已安装或 JBang 管理的 JDK 版本。 |
| jbang jdk install v | 安装指定版本的 JDK(例如 jbang jdk install 17)。 | |
| jbang jdk default v | 设置当前使用的默认 JDK 版本。 | |
| 应用与别名 | jbang app install name | 将脚本作为全局命令安装到系统 PATH 中,直接通过名称调用。 |
| jbang alias add name url | 为远程或本地脚本设置短别名,方便后续快速运行。 | |
| jbang catalog list | 查看当前配置的应用目录(Catalogs),用于发现和分享脚本工具。 | |
| 系统管理 | jbang cache clear | 清理编译后的脚本缓存和下载的依赖包。 |
| jbang version | 查看当前安装的 JBang 版本信息。 | |
| jbang completion | 生成适用于 bash/zsh 等终端的自动补全脚本。 |
实用技巧
- 调试模式:使用 jbang --debug myapp.java 可以启动调试器并监听默认端口 4004。
- 原生编译:如果安装了 GraalVM,可以使用 jbang --native myapp.java 将其编译为无需 JVM 即可运行的可执行文件。
- 清理环境:如果遇到依赖下载失败或编译错误,jbang cache clear 是最常用的排障手段。 jbang cache 和 maven本地 cache 非常类似,会将依赖包自动下载到 jbang 自己的本地 cache 目录中
[1] https://foojay.io
[2] https://www.jbang.dev
[3] https://camel.apache.org
[4] https://blog.marcnuri.com

浙公网安备 33010602011771号