Skip to content


Folders and files

Last commit message
Last commit date

Latest commit



32 Commits

Repository files navigation

Bach - Java Shell Builder - Builds (on(ly)) Modules

"The tools we use have a profound (and devious!) influence on our thinking habits, and, therefore, on our thinking abilities."

E. W. Dijkstra, 18 June 1975

Bach is a Java Shell-like that orchestrates JDK tools for building modular Java projects.


Install Bach's basic tool framework using its sources via git and Java 22 or higher.

First time:

mkdir myproject
cd myproject
git init
git submodule add .bach/src/run.bach/run/bach
echo .bach/src/run.bach/run/bach/internal/ > .bach/run

Subsequent times:

cd myproject
git submodule update --remote --recursive

Run time:

java @.bach/run jar --version
java @.bach/run java --version
java @.bach/run World
java @.bach/run World

Consult the following manual pages for details of git and java tools:

  • git init - Create an empty Git repository or reinitialize an existing one
  • git submodule - Initialize, update or inspect submodules
  • java @file - Java Command-Line Argument Files

be free - have fun

jdk22 experimental jsb