\documentclass[10pt,a4paper]{article} % Packages \usepackage{fancyhdr} % For header and footer \usepackage{multicol} % Allows multicols in tables \usepackage{tabularx} % Intelligent column widths \usepackage{tabulary} % Used in header and footer \usepackage{hhline} % Border under tables \usepackage{graphicx} % For images \usepackage{xcolor} % For hex colours %\usepackage[utf8x]{inputenc} % For unicode character support \usepackage[T1]{fontenc} % Without this we get weird character replacements \usepackage{colortbl} % For coloured tables \usepackage{setspace} % For line height \usepackage{lastpage} % Needed for total page number \usepackage{seqsplit} % Splits long words. %\usepackage{opensans} % Can't make this work so far. Shame. Would be lovely. \usepackage[normalem]{ulem} % For underlining links % Most of the following are not required for the majority % of cheat sheets but are needed for some symbol support. \usepackage{amsmath} % Symbols \usepackage{MnSymbol} % Symbols \usepackage{wasysym} % Symbols %\usepackage[english,german,french,spanish,italian]{babel} % Languages % Document Info \author{linux\_china} \pdfinfo{ /Title (jbang.pdf) /Creator (Cheatography) /Author (linux\_china) /Subject (JBang Cheat Sheet) } % Lengths and widths \addtolength{\textwidth}{6cm} \addtolength{\textheight}{-1cm} \addtolength{\hoffset}{-3cm} \addtolength{\voffset}{-2cm} \setlength{\tabcolsep}{0.2cm} % Space between columns \setlength{\headsep}{-12pt} % Reduce space between header and content \setlength{\headheight}{85pt} % If less, LaTeX automatically increases it \renewcommand{\footrulewidth}{0pt} % Remove footer line \renewcommand{\headrulewidth}{0pt} % Remove header line \renewcommand{\seqinsert}{\ifmmode\allowbreak\else\-\fi} % Hyphens in seqsplit % This two commands together give roughly % the right line height in the tables \renewcommand{\arraystretch}{1.3} \onehalfspacing % Commands \newcommand{\SetRowColor}[1]{\noalign{\gdef\RowColorName{#1}}\rowcolor{\RowColorName}} % Shortcut for row colour \newcommand{\mymulticolumn}[3]{\multicolumn{#1}{>{\columncolor{\RowColorName}}#2}{#3}} % For coloured multi-cols \newcolumntype{x}[1]{>{\raggedright}p{#1}} % New column types for ragged-right paragraph columns \newcommand{\tn}{\tabularnewline} % Required as custom column type in use % Font and Colours \definecolor{HeadBackground}{HTML}{333333} \definecolor{FootBackground}{HTML}{666666} \definecolor{TextColor}{HTML}{333333} \definecolor{DarkBackground}{HTML}{ED1D25} \definecolor{LightBackground}{HTML}{FDF0F1} \renewcommand{\familydefault}{\sfdefault} \color{TextColor} % Header and Footer \pagestyle{fancy} \fancyhead{} % Set header to blank \fancyfoot{} % Set footer to blank \fancyhead[L]{ \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{C} \SetRowColor{DarkBackground} \vspace{-7pt} {\parbox{\dimexpr\textwidth-2\fboxsep\relax}{\noindent \hspace*{-6pt}\includegraphics[width=5.8cm]{/web/www.cheatography.com/public/images/cheatography_logo.pdf}} } \end{tabulary} \columnbreak \begin{tabulary}{11cm}{L} \vspace{-2pt}\large{\bf{\textcolor{DarkBackground}{\textrm{JBang Cheat Sheet}}}} \\ \normalsize{by \textcolor{DarkBackground}{linux\_china} via \textcolor{DarkBackground}{\uline{cheatography.com/141366/cs/30284/}}} \end{tabulary} \end{multicols}} \fancyfoot[L]{ \footnotesize \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{LL} \SetRowColor{FootBackground} \mymulticolumn{2}{p{5.377cm}}{\bf\textcolor{white}{Cheatographer}} \\ \vspace{-2pt}linux\_china \\ \uline{cheatography.com/linux-china} \\ \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Cheat Sheet}} \\ \vspace{-2pt}Published 12th February, 2022.\\ Updated 7th April, 2024.\\ Page {\thepage} of \pageref{LastPage}. \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Sponsor}} \\ \SetRowColor{white} \vspace{-5pt} %\includegraphics[width=48px,height=48px]{dave.jpeg} Measure your website readability!\\ www.readability-score.com \end{tabulary} \end{multicols}} \begin{document} \raggedright \raggedcolumns % Set font size to small. Switch to any value % from this page to resize cheat sheet text: % www.emerson.emory.edu/services/latex/latex_169.html \footnotesize % Small font. \begin{multicols*}{2} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{Simple JBang Hello.java}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{///usr/bin/env jbang "\$0" "\$@" ; exit \$? \newline \newline class Hello \{ \newline public static void main(String{[}{]} args) \{ \newline \seqsplit{System.out.println("Hello} World!"); \newline \} \newline \}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{Run JBang script}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{\$ jbang Hello.java \newline \$ jbang -{}-debug Hello.java \newline \$ chmod u+x \newline \$ ./Hello.java} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{Templates}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{\$ jbang template list \newline \$ jbang init -{}-template=cli helloworld.java} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{ChatGPT - init script from ChatGPT}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{\$ jbang init HelloCli.java "generate hello command with picocli library"} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{You need an OPENAI\_API\_KEY environment variable.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{p{0.8 cm} p{0.8 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Editing}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{} \tn % Row Count 0 (+ 0) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{\$ jbang edit helloworld.java \newline \$ jbang edit -{}-open=code helloworld.java \newline \$ jbang edit -{}-open=idea helloworld.java} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{4 cm} x{4 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Assign Java version}} \tn % Row 0 \SetRowColor{LightBackground} //JAVA 8 & Assigned version in Script \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} //JAVA 11+ & Java 11 or higher \tn % Row Count 3 (+ 1) % Row 2 \SetRowColor{LightBackground} jbang -{}-java 8 Hello.java & Assigned version from CLI \tn % Row Count 5 (+ 2) % Row 3 \SetRowColor{white} jbang jdk list -{}-available & List available JDKs \tn % Row Count 7 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{If you don't assign Java version, and JBang will run the script with Java 17 by default.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{java and javac Options}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{//JAVAC\_OPTIONS -parameters \newline //JAVA\_OPTIONS -Dnick=xxx \newline //JAVA\_OPTIONS -Dserver.port=8081 -D \seqsplit{spring.application.name=app1} \newline //PREVIEW} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{Java preview}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{///usr/bin/env jbang "\$0" "\$@" ; exit \$? \newline \newline //PREVIEW \newline //JAVA 21 \newline \newline void main() \{ \newline \seqsplit{System.out.println("Hello} World"); \newline \}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{Multiple Java source files}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{//SOURCES UserService.java \newline //SOURCES \seqsplit{impl/UserServiceImpl.java}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{Multi resource files - properties/xml etc}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{//FILES application.properties \newline //FILES \seqsplit{META-INF/resources/index.html=index.html} \newline //FILES \seqsplit{META-INF/resources/jquery}.js=https://code.jquery.com/jquery-3.6.0.min.js \newline //FILES \seqsplit{templates/HelloWorld.txt.mtl=templates/HelloWorld.txt.mtl} \newline \newline {\bf{Resource import format}}: //FILES \textless{}mountpoint\textgreater{}{[}=\textless{}sourcefile\textgreater{}{]}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{Polyglot - Kotlin}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{///usr/bin/env jbang "\$0" "\$@" ; exit \$? \newline \newline //KOTLIN 1.8.21 \newline //DEPS \seqsplit{org.jetbrains.kotlin:kotlin-bom:1.8.21@pom} \newline //DEPS \seqsplit{org.jetbrains.kotlin:kotlin-stdlib} \newline \newline public fun main() \{ \newline println("Hello World"); \newline \}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{Polyglot - Groovy}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{///usr/bin/env jbang "\$0" "\$@" ; exit \$? \newline \newline //GROOVY 4.0.12 \newline \newline println("Hello World");} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{Polyglot - JShell}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{///usr/bin/env jbang "\$0" "\$@" ; exit \$? \newline //DEPS \seqsplit{net.datafaker:datafaker:1.9.0} \newline \newline import net.datafaker.Faker; \newline \newline Faker faker = new Faker();} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{\$ jbang demo.jsh \newline \$ jbang -{}-interactive demo.jsh} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{JBang native}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{\$ jbang -{}-native Hello.java \newline \newline // \seqsplit{https://github.com/linux-china/jbang-spring-native} \newline // \seqsplit{https://github.com/GoodforGod/graalvm-hint}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{Dependencies}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{//DEPS \seqsplit{systems.manifold:manifold-all:2023.1.10} \newline //DEPS \seqsplit{org.projectlombok:lombok:1.18.28} \newline //DEPS \seqsplit{org.slf4j:slf4j-simple:2.0.7} \newline //DEPS libs/local.jar} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{Managed dependencies by BOM - Spring Boot}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{//DEPS \seqsplit{org.springframework.boot:spring-boot-dependencies:2.7.11@pom} \newline //DEPS \seqsplit{org.springframework.boot:spring-boot-starter}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{Managed dependencies by BOM - Quarkus}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{//DEPS \seqsplit{io.quarkus:quarkus-bom:2.9.2.Final@pom} \newline //DEPS \seqsplit{io.quarkus:quarkus-resteasy}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{Repositories}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{//REPOS central,spring-release=https://repo.spring.io/release \newline //REPOS central,spring-milestone=https://repo.spring.io/milestone \newline \newline {\bf{Well-known repositories}}: \newline \newline {\emph{ central - \seqsplit{https://repo1.maven.org/maven2/} \newline }} google - \seqsplit{https://maven.google.com/} \newline * jitpack - https://jitpack.io/} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{Aliases}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{\$ jbang alias add -{}-name hello \seqsplit{https://github.com/jbangdev/jbang-examples/blob/HEAD/examples/helloworld.java} \newline \$ jbang hello \newline \$ jbang alias list \newline \$ jbang alias list -{}-show-origin} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{Catalogs - jbang-catalog.json}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{\{ \newline "aliases": \{ \newline "hello": \{ \newline "script-ref": "hello.java", \newline "description": "Script that says hello back for each argument" \newline \} \newline \}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{JSON Schema for jbang-catalog.json \seqsplit{https://github.com/jbangdev/jbang-idea/blob/main/src/main/resources/jbang-catalog-schema.json}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{Catalogs - local jbang-catalogs.json}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{1. jbang-catalog.json in current directory} \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{2. jbang-catalog.json in parent directory util the root diretory} \tn % Row Count 3 (+ 2) % Row 2 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{3. \seqsplit{\$HOME/.jbang/jbang-catalog.json}} \tn % Row Count 4 (+ 1) % Row 3 \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{4. JBangHub: \seqsplit{https://github.com/jbanghub}} \tn % Row Count 5 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{3.44 cm} x{4.56 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Catalogs - implicit catalog from GitHub}} \tn % Row 0 \SetRowColor{LightBackground} jbang hello@acme & hello alias in \seqsplit{acme/jbang-catalog/jbang-catalog}.json \tn % Row Count 3 (+ 3) % Row 1 \SetRowColor{white} jbang \seqsplit{hello@acme/mycatalog} & hello alias in \seqsplit{acme/mycatalog/jbang-catalog}.json \tn % Row Count 6 (+ 3) % Row 2 \SetRowColor{LightBackground} jbang \seqsplit{hello@acme/mycatalog/dev} & hello alias in \seqsplit{acme/mycatalog/jbang-catalog}.json in dev branch \tn % Row Count 9 (+ 3) % Row 3 \SetRowColor{white} jbang hello@acme\textasciitilde{}experimental & hello alias in \seqsplit{acme/jbang-catalog/experimental/jbang-catalog}.json \tn % Row Count 12 (+ 3) % Row 4 \SetRowColor{LightBackground} jbang \seqsplit{hello@example.com} & hello alias found in \seqsplit{https://example.com/jbang-catalog.json} \tn % Row Count 15 (+ 3) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{Catalogs - management}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{\$ jbang catalog add -{}-name acme acme \newline \$ jbang catalog add -{}-name mycatalog acme/mycatalog \newline \$ jbang catalog list} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{3.2 cm} x{4.8 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Tips}} \tn % Row 0 \SetRowColor{LightBackground} jbang -{}-fresh & Use none-cached resources \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} jbang info tools Hello.java & Prints a json description of JBang script \tn % Row Count 4 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{Apps - setup jbang to put scripts into your PATH}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{\$ jbang app install \textless{}scriptRef\textgreater{} \newline \$ \$ jbang app install -{}-name app1 \textless{}scriptRef\textgreater{} \newline \$ jbang app list \newline \$ jbang app uninstall \textless{}name\textgreater{}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{build.java}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{///usr/bin/env jbang "\$0" "\$@" ; exit \$? \newline //JAVA 17 \newline //DEPS \seqsplit{info.picocli:picocli:4.7.3} \newline //SOURCES src \newline //FILES resources} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{2.8 cm} x{5.2 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{JBang export - generate jar or native binary}} \tn % Row 0 \SetRowColor{LightBackground} jbang export fatjar & Exports an executable fat jar with all dependencies \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} jbang export portable & Exports jar together with dependencies in pom.xml \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} jbang export native & Exports native executable \tn % Row Count 6 (+ 2) % Row 3 \SetRowColor{white} jbang export mavenrepo & Exports directory that can be used to publish as a maven repository \tn % Row Count 9 (+ 3) % Row 4 \SetRowColor{LightBackground} jbang export jlink & Export app with Java runtime embedded \tn % Row Count 11 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{JBang with ChatGPT}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{export \seqsplit{OPENAI\_API\_KEY=sk-xxxxxxx-x-xxxxxx} \newline jbang init gh.java "connect to github an fetch all repositories under jbangdev and collect how many stars they have"} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} % That's all folks \end{multicols*} \end{document}