Java4Delphi
Creates Delphi .pas files from Java .class files and Java .jar archives so Java classes and libraries can be used from Delphi code.
- uses standard Java Native Interface (JNI)
- provides classes with automatic reference-counting memory management
- available for Delphi 7 - 11 and Lazarus 2.0.12
- supports Windows 32, Windows 64, macOS and Linux
- source code of JNI, JavaBridge and Delphi4Java units included in registered version
Example
// Java code: package test; class Test { public Test() { } public String hello() { return "Hello, world!"; } }
// Generated Delphi interface: type Itest_Test = interface(Ijava_lang_Object) function hello: string; end; Ttest_Test = class(Tjava_lang_Object, Itest_Test) public constructor Create(JavaObject: JObject); overload; constructor Create; overload; end; Ttest_TestClass = class(Tjava_lang_ObjectClass) public property _initID: JMethodID read F_initID; property helloID: JMethodID read FhelloID; end; function Get_test_TestClass: Ttest_TestClass; // Usage: JavaBridge := TJavaBridge.Create; ShowMessage(Ttest_Test.Create.hello);
Download and order
Order Java4Delphi license $340 USD
Order Java4Delphi year upgrades $170 USD (registered users only)
FAQ
Why JNI_CreateJavaVM throws SEGV exception "$C0000005: read of address 0x00000000" in Delphi IDE?
Ignore this exception, it's generated intentionally in JVM to detect some HW/OS features: Exception 0xC0000005 from JNI_CreateJavaVM
Why 'The specified module cound not be found: C:\Program Files (x86)\Java\jre1.8.0_311\bin\client\jvm.dll' exception is raised?
Add JRE bin folder to Path environment variable: C:\Program Files (x86)\Java\jre1.8.0_311\bin
Ignore this exception, it's generated intentionally in JVM to detect some HW/OS features: Exception 0xC0000005 from JNI_CreateJavaVM
Why 'The specified module cound not be found: C:\Program Files (x86)\Java\jre1.8.0_311\bin\client\jvm.dll' exception is raised?
Add JRE bin folder to Path environment variable: C:\Program Files (x86)\Java\jre1.8.0_311\bin