Pi4J moved to Java version 21! Please read this blog post for more info. 3.0.1 is the first release that requires Java 21 or newer.
Latest release: V3.0.1 (2025-03-24, see Release Notes).
This project is intended to provide a friendly object-oriented I/O API and implementation libraries for Java Programmers to access the full I/O capabilities of the Raspberry Pi platform. This project abstracts the low-level native integration and interrupt monitoring to enable Java programmers to focus on implementing their application business logic.
Pi4J supports the new Raspberry Pi 5 as of version 2.5.0. Because of the new GPIO chip RP1, a new GPIO Provider was needed. See the release notes for more info.
If you immediately want to “dive” into Pi4J development, check these resources:
The Pi4J Project was started in 2012, the same year the Raspberry Pi was introduced as a tool to provide Java developers a simple and familiar object-oriented interface library to access the low-level I/O capabilities of the Raspberry Pi including GPIO, I2C, SPI, PWM and Serial communications.
The Pi4J Project’s mission is to provide a rich and powerful, yet simple to use, Java-friendly API library enabling programmatic access to the low-level hardware I/O capabilities of embedded platforms such as the Raspberry Pi.
The Pi4j project has evolved in all these years as the whole Java eco-system and Raspberry Pi systems have been evolving.
This resulted in the following main versions: