Welcome to the JBang Cheatsheet, your comprehensive guide to mastering this powerful tool for rapid Java development. JBang eliminates the need for complex setup and repetitive configuration, allowing you to focus on writing code and exploring new Java projects. Whether you’re a seasoned Java developer or just starting out, this cheatsheet will equip you with the knowledge and skills to leverage JBang‘s capabilities and accelerate your Java development journey.
Note: if you are new to JBang we recommend checking this article: JBang: Create Java scripts like a pro
JBang CheatSheet for Java Developers
Install JBang on Linux
curl -Ls https://sh.jbang.dev | bash -s - app setup
Upgrade JBang
jbang version --update
Init a JBang Script
// --template=hello jbang init hello.java
Execute a JBang Script
jbang example.java
Debug a script
jbang --debug helloworld.java
Edit a JBang script
jbang edit -b foo.java
Run a Java class in a JAR file
jbang file.jar --main=com.App
Run a Class using Maven GAV
jbang group:artifact:version --main=com.App
Run a Java Snippet
echo "hello world" | jbang -c 'lines().forEach(s->println(s.substring(6)))`
Create an Executable JAR
jbang export portable MyApp.java
Generate the Maven POM
jbang export mavenrepo --force -O target --group=com.sample -Dartifact=example -Dversion=1.0 MyApp.java
Add Dependency
//DEPS log4j:log4j:1.2.17
Add a GitHub Dependency
//DEPS https://github.com/DiUS/java-faker
Add BOM Dependency
//DEPS io.quarkus:quarkus-bom:1.11.0.Final@pom //DEPS io.quarkus:quarkus-resteasy
Add Source Dependency
//DEPS myclass.java
Use System Properties Dependecies
//DEPS group:artifact${version}
Use Env Vars in Comments
//DEPS group:artifact${env.version}
Pass Dependencies to jbang
jbang --deps g1:a1:v1,g2:a2:v2 test.java
Add File Resources
//FILES resource.properties //FILES META-INF/resources/index.html=index.html
Add Manifest
//MANIFEST version=${version:unknown}
Set Quarkus Properties
//Q:CONFIG quarkus.datasource.db-kind=postgresql
Remote file expansion [1]
jbang CountWords.java %https://github.com/dwyl/english-words/raw/master/words.txt
Add Repository
//REPOS mavencentral,acme=http://maven.acme.repo
Add Java Sources
//SOURCES App.java //SOURCES othernested/*.java
JDK Configuration
//JAVA 11 forces use of Java 11. //JAVA 13+ Java 13 or higher will be used.
Install a JDK
jbang jdk install 17
Install JDK from your Machine
jbang jdk install 17 `sdk home java 17.0.4.1-tem`
Uninstall JDK
jbang jdk uninstall 14
List JDKs
jbang jdk list
Set default JDK
jbang jdk default 12
java / javac Options
//JAVAC_OPTIONS -source 11 //JAVA_OPTIONS -Xms128m -Xmx512m
Install a JBang App
jbang app install CamelJBang@apache/camel
List Available Apps
jbang app list
[1] JBang will download the file – tagged with % – and pass it as argument to the Script
Conclusion
With this JBang Cheatsheet, you now have access to a concise and well-structured guide that covers the essential commands, syntax, and functionalities of jbang. Whether you are a developer, a student, or simply curious about this powerful Java-based scripting tool, this JBang Cheatsheet will empower you to streamline your scripting workflow, automate tasks, and boost productivity.