Java API generator

Java API generator (scapix_java executable in bin folder) is used to generate C++ headers from Java binary *.class files. Scapix provides pre-generated C++ headers for multiple JDK and Android platforms. For example, see generated C++ header: java/lang/String.h.

Generating additional bindings

You can also use scapix_java to generate C++ bindings for another JDK or Android release or for any other Java code, including your own. These examples show how to generate additional C++ bindings.

Generate bindings for jdk-26 platform API

JDKs provide platform API in multiple *.jmod files inside jmods folder. You don’t have to install corresponding JDK, it is enough to unpack jmods folder and point scapix_java to it.

git clone git@github.com:scapix-com/scapix-java-api.git
cd scapix-java-api\platforms
mkdir jdk-26\scapix\java_api
cd jdk-26\scapix\java_api
scapix-bin\Windows-AMD64\scapix_java "c:\Program Files\Java\jdk-26\jmods"
git clone git@github.com:scapix-com/scapix-java-api.git
cd scapix-java-api/platforms
mkdir -p jdk-26/scapix/java_api
cd jdk-26/scapix/java_api
scapix-bin/Darwin-arm64/scapix_java "/Library/Java/JavaVirtualMachines/jdk-26.jdk/Contents/Home/jmods"
git clone git@github.com:scapix-com/scapix-java-api.git
cd scapix-java-api/platforms
mkdir -p jdk-26/scapix/java_api
cd jdk-26/scapix/java_api
scapix-bin/Linux-x86_64/scapix_java "/usr/lib/jvm/java-26-openjdk-amd64/jmods"

Now you can run CMake with SCAPIX_JAVA_API=jdk-26.

Generate bindings for android-37 platform API

Android SDKs provide platform API in android.jar file.

git clone git@github.com:scapix-com/scapix-java-api.git
cd scapix-java-api\platforms
mkdir android-37\scapix\java_api
cd android-37\scapix\java_api
scapix-bin\Windows-AMD64\scapix_java "%USERPROFILE%\AppData\Local\Android\Sdk\platforms\android-37\android.jar"
git clone git@github.com:scapix-com/scapix-java-api.git
cd scapix-java-api/platforms
mkdir -p android-37/scapix/java_api
cd android-37/scapix/java_api
scapix-bin/Darwin-arm64/scapix_java "~/Library/Android/sdk/platforms/android-37/android.jar"
git clone git@github.com:scapix-com/scapix-java-api.git
cd scapix-java-api/platforms
mkdir -p android-37/scapix/java_api
cd android-37/scapix/java_api
scapix-bin/Linux-x86_64/scapix_java "~/Android/Sdk/platforms/android-37/android.jar"

Now you can run CMake with SCAPIX_JAVA_API=android-37.