Ipython/Jypyter notebooks are a great way to share small programs and examples as well as a way of doing interactive human-driven exploration of data. Python is often the kernel of choice but the system supports other REPL-oriented languages such as R, Julia etc.

A bit less knowm is that there is also a Java kernel implementation in the IJava system ! It allows a good interactive development experience and is especially a great way of sharing small demonstration Java programs which the users can execute and modify very easily just from a browser.

The kernel supports a wide range of Jupyter magics, including loading Java packages from maven repositories etc. The magics are documents here: https://github.com/SpencerPark/IJava/blob/master/docs/magics.md.

I’ve recently updated the docker packaging of IJava so that it can be again easily launched on Binder.org: the repository is here https://github.com/bnalgo/ijava-binder.

As an example demonstrating loading packages from maven including a JNI library into straight binder I’ve slightly modified a RocksDB example for Java: RocksDB in Java example Notebook Launch in
binder

(Using RocksDB for this example was inspired by the this recent post https://artem.krylysov.com/blog/2023/04/19/how-rocksdb-works/)