JChemPaint (or JCP for short here) is the editor and viewer for 2D chemical structures developed using CDK. It is implemented in several forms: a Java application and two varieties of Java applet.
Please see the documentation at https://github.com/JChemPaint/jchempaint/wiki for more information.
The issue tracker here (on top of this page) is for specific JCP-related bugs. For problems in CDK proper, please use https://github.com/JChemPaint/jchempaint/issues
Compiled program as a .jar file can be downloaded from https://github.com/JChemPaint/jchempaint/releases
Note! Prerequisite for running JChemPaint .jar program file is having either Java Runtime Environment (JRE) or Java Development Kit (JDK) installed which can be downloaded from multiple vendors: Eclipse Temurin, Azul Zulu, Amazon Corretto, SAP SapMachine or other sources.
Build requirements (need installation)
- gettext : http://www.gnu.org/software/gettext/
- app-bundler: https://github.com/federkasten/appbundler-plugin (optional)
Build with the following commands
mvn install -DskipTests
mvn install -DskipTests -Posx-app
mvn install -DskipTests -Pwindows-app
The second and third option are to build an OS X application bundle (.app), and to build a windows executable (.exe).
JChemPaint uses the FEST-Swing for UI testing. To get this working you need use a Java version 25 or older and enable possibly enable some system settings to allow robots. Java 26+ will not work because FEST tries to load the removed Applet APIs - note JCP doesn't use these. You also need to add the following runtime arguments:
--enable-native-access=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED
Also note there are some issues with the "flat" Look-and-Feel so switching to the system default typically helps.
On Mac OS to get things running, System Settings > Privary & Secuirty > Accesibility
allows the IDE to control the computer. When running from the command line
(mvn test) it is the terminal app which needs the option and not the
java/mvn binary.