简体   繁体   中英

Using a java class from Delphi

I need to use the logic contained in some java classes. I found JNI, but that project seems not updated recently.

Is there a way to use it in a Delphi native application? I use Delphi 2009.

A newer solution than JNI is JNA , which also supports callbacks from (Delphi) DLLs. I found it easy to use.

You could try j-interop . The technique I should adopt is to build a COM wrapper of java business logic, and using this COM server from delphi throught interoperability.

Delphi can build a type library of a COM server, and you could istantiate the com server using this typelibrary. Type library is simply a wrapper of the server, exposing its interface to be used by delphi code.

The key to communicating with different platform softwares is called "interoperability".

You can find this also in .net versus win32. Tipically delphi code is win32 (exe or dll), and you can build communication protocol between delphi objects and .net assemblies or java bytecode using interoperability solutions.

With Java 6, it takes only a few lines of code to write a standalone web service server which then can be invoked from Delphi.

small step-by-step tutorial, using the free NetBeans IDE and Delphi:

more xamples:

作为Delphi的Java本机接口(JNI)或JNA的替代方案和完全有偏见的答案, Java for Delphi使Java和Delphi应用程序能够在面向对象的级别上进行互操作,使用强类型代码,可以在编译时检测错误在运行时。

Embed the VM in the native code. This worked for me. An example with c can be found here. http://java.sun.com/docs/books/jni/html/invoke.html

I very much doubt it. Delphi Code gets compiled into an executable while Java code is executed by a Virtual Machine. So unless you launch a complete Virtual Machine inside Delphi code I see no way to easily include the logics.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM