FPC JVM
│
English (en) │
русский (ru) │
Overview
The FPC backend for the Java Virtual Machine (JVM) generates Java byte code that conforms to the specifications of the JDK 1.5 (and later), and also to the Dalvik VM from the Android platform. While not all FPC language features work when targeting the JVM, most do (or will in the future) and we have done our best to introduce as few differences as possible.
Detailed information
- Basic usage information
- Supported language constructs and other programming information
- Help with debugging the Java class files
- Building the compiler and Java utilities from source
- Information about internal changes to the compiler and RTL (mainly interesting to compiler/RTL developers)
Download
Please check the official download page for your platform to see whether a pre-built release of the JVM cross-compiler is available.
If your platform is not listed above, or if you are only interested in building the compiler/RTL from source, a separate archive that only contains the compiled Java components (Jasmin, javapp, BCEL) is also available. Building instructions for the compiler and are available via the "Building" link above.
- FPC JVM utilities (you do not need this if you already downloaded an official release)
Quick start
Java or Android
By default, the compiler will generate code suitable for running on a Java Virtual Machine. If you wish to create Java class files that can be translated using the Android SDK into Dalvik code, add the -Tandroid compiler command line parameter.
For more detailed information about the development of apps for Android see here.
Compile a test program
The used example is https://gitlab.com/freepascal.org/fpc/source/-/blob/main/tests/test/jvm/trange1.pp
ppcjvm -O2 -g trange1
Run it on Windows
Note: the path to the units has changed since the previous snapshots!
java -cp C:\full\path\to\fpcjvm\units\jvm-java\rtl;. trange1
Replace C:\full\path\to\fpcjvm\units\jvm-java\rtl with the full path to the units\jvm-java\rtl directory from the snapshot archive.
Run it on Unix-like platforms
Note: the path to the units has changed since the previous snapshots!
java -cp /full/path/to/fpcjvm/units/jvm-java/rtl:. trange1
Replace /full/path/to/fpcjvm/units/jvm-java/rtl with the full path to the units/jvm-java/rtl directory from the snapshot archive.
More details
See the usage information page for more details.
See also
- Lazarus JVM Using Lazarus to build Java applications.