采用
Java下的命令行工具并不是特别多,当然项目管理工具类,如Maven/Gradle/sbt/ant等除外,这里面JBang 就比较突出。 JBang可以让你以更快捷地方式快速运行Java代码或程序。如果你要运行一个最简单的Java Hello World,那么你需要:
- 安装JDK环境,而且版本要对。
- 安装Maven等项目管理工具,虽说是Hello World,但是如果要引用最基本的第三方包,如Guava, gson等,那么package管理跑不掉。
- 接下来就是编译和打包。 普通的jar包可能还不行,如果有其他依赖,你可能需要fat jar,要进行对应的插件设置。
- 最后是运行,还好,就是
java -jar xxx.jar。
能否不要这么复杂? JBang就是解决这个问题的,如果你想尝试一下Java 22新特性,那么下面代码就够啦:
///usr/bin/env jbang "$0" "$@" ; exit $?
//JAVA 22
//PREVIEW
//DEPS org.apache.commons:commons-lang3:3.13.0
//import org.apache.commons.lang3.StringUtils;
void main() {
String name = "Joan";
String intro = STR. "My name is \{ name }" ;
System.out.println(intro);
}
然后运行:jbang hello.java,就可以看到输出了。 什么? 本地没有安装JDK 22,JBang帮你搞定,package下载,自动完成。
要用到preview特性,添加一下//PREVIEW就可以,总之JBang让这一切变得非常简单。
如果你要演示一下demo/example,尤其是告诉其他人如何通过Java调用你的服务,那么JBang是一个非常好的选择,他人可以直接运行并看到效果,阻尼系数为零。
当然JBang还有很多其他功能,如直接运行gav, script catalog支持,hub等,你可以尝试一下。
JBang & Friends
- SDKMAN: https://sdkman.io/
- kscript: https://github.com/kscripting/kscript
- Scala CLI: a command-line tool to interact with the Scala language - https://scala-cli.virtuslab.org/
- MIMA: minimal Maven reusable one-stop shop library - https://github.com/maveniverse/mima
References
- JBang: https://www.jbang.dev/
- JBang Cheat Sheet: https://cheatography.com/linux-china/cheat-sheets/jbang/