Java 197
Java is the core topic across this site. These posts cover modern Java features, OpenJDK evolutions, performance tuning, tooling, and hands-on development lessons from real projects.

Sheetmusic4J 0.0.5: LilyPond Import and Export
Sheetmusic4J is a Java(FX) library to render and interact with sheet music. After MusicXML, MIDI, ABC and Guitar Pro, version 0.0.5 adds another format: LilyPond.

Pi4J Drivers V1.2.0: ePaper, DAC/ADC, Motors, and LoRa
Pi4J is the Java library that gives you access to the hardware I/O of the Raspberry Pi: GPIO pins, I2C, SPI, PWM, and serial communication. With it, you can read a button, blink an …

Lottie4J 1.2.7: A Performance Release
A new version of Lottie4J, the Java and JavaFX library to render Lottie animations, is available. Release 1.2.7 doesn’t bring new features, but focuses fully on performance.

Foojay Podcast #102: Why Foojay Walked Away From WordPress for Static Sites
Six years of WordPress plugin updates, security patches, and slow page loads were enough for me, as I wrote about in The New Foojay.io: Generated by Hugo, Maintained by Java. For …

The New Foojay.io: Generated by Hugo, Maintained by Java
Publishing an article on Foojay used to mean creating an account, learning a web editor, and hoping your code blocks survived the formatting. Since this week it means opening a …

Foojay Podcast #101: Java 27 in Practice: Smaller Heaps, Smarter Defaults, and Valhalla on the Horizon
JDK 27 arrives on 15 September 2026, and it is a feature release rather than a Long-Term Support one. That distinction matters less than it sounds. As Simon Ritter, Deputy CTO at …

Sheetmusic4J 0.0.3: ABC Notation, Guitar Pro, Engraving Improvements
Last week I introduced Sheetmusic4J, a Java(FX) library to render and interact with sheet music. That first 0.0.1 release was really a question more than a product: is there any …

Introducing Sheetmusic4J, a Java(FX) Library to Render and Interact with Sheet Music
I’m building MelodyMatrix with my son, an application to look at and play along with music. The app already shows a song in different views: falling blocks, chords, guitar …
First Test of Java on Banana Pi (ARM and RISC-V), Plus a Blinking LED with Pi4J
As part of my 2026 learning goals around Java on RISC-V (see this post about x86 versus ARM versus RISC-V), I’ve asked various suppliers to send me evaluation boards. I …

Foojay Podcast #100: Java Podcasters on Why They Started, What Broke, and What They Learned
Foojay Podcast hits episode 100. No plan, no roadmap, it just happened. To mark the occasion, I turned the microphone around and invited other podcasters from the Java community to …

My Book 'Java Programming for Raspberry Pi' is Now Available as Softcover and Hardcover on Amazon
“Java Programming for Raspberry Pi: A Hands-On Guide to Electronics and IoT Projects” is now available as a softcover and hardcover paper book through Amazon, on top of …

Closing the Visual Gap Between the Official Lottie Webplayer and Lottie4J
A Lottie library is only as good as its output looks. If an animation renders differently in Lottie4J than it does in the official web player, that’s a bug, even when no …

Foojay Podcast #99: Testing the Untestable, LLM Security for Java Developers with Tiberius
Unit testing assumes that the same input gives the same output. Large language models break that assumption on purpose, which leaves Java developers wiring LLMs into their …

Foojay Podcast #98: The End of JNI Pain, How WebAssembly Is Quietly Replacing Native Libraries in Java
JNI has been the standard answer for calling native code from Java for almost three decades. It also brings most of the headaches anyone who has wrestled with it remembers: brittle …

Lottie4J Meets LottieFiles: A Conversation with Naail Abdul Rahman
Lottie animations run on Android, iOS, and the web. Getting them working on the JVM is a different story. Lottie4J started as a question: can JavaFX render them without a WebView? …

Foojay Podcast #97: From Scripting Language to AI Powerhouse with BoxLang
If you write Java day to day, the AI tooling conversation often defaults to Python. BoxLang takes a different route. It runs on the JVM, treats AI as a first-class concern, and …

Foojay Podcast #96: Local AWS Development Without LocalStack: Meet Floci, the GraalVM-Powered Alternative
Running AWS services on your laptop usually means waiting for a heavy emulator to boot, watching memory fill up, and hoping the API behavior matches the real cloud. Floci takes a …

Is Your Java App Actually Secure, Or Does It Just Look That Way?
Your Java app passes the build, the tests are green, and the dashboard looks fine. But are the libraries underneath still maintained, or are they quietly collecting …

Foojay Podcast #94: More Than a Blog: How Foojay Connects, Sustains, and Evolves the Java Community
What keeps a developer community alive after six years, and what does it take to stay relevant while AI reshapes how we write code? For Foojay’s sixth anniversary, we …

JCast: Van Commodore 64 tot Java Champion: code begrijpelijk maken
Code only helps people when they can read it, run it, and understand what it does. That same idea applies to documentation, to teaching kids how to program, and to the way …