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

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

Related links