在java spring项目中使用delphi dll

mad*_*mad 1 java delphi dll java-native-interface

请帮我把细节放在一起.我已经扫描了很长时间的网络,但结果并不好.

所以我有:

  1. Delphi为JNI编写的DLL(来自32位Delphi的32位comp)

  2. 我的64位MAC上的Java Web项目(Tomcat,Spring)

  3. System.out.println(System.getProperty("java.library.path"))写入"/ tmp",它是正确的

  4. 在/ tmp我有来自delphi的qvs.dll

当我开始项目时,我得到例外:

java.lang.UnsatisfiedLinkError: no qvs in java.library.path
Run Code Online (Sandbox Code Playgroud)
  1. 加载库的Java代码:

    的System.loadLibrary( "QVS")

我尝试了很多具有相同结果的组合.只有一个原因我不能尝试.我可以在64位MAC上使用32位DLL吗?

非常感谢.

Arn*_*hez 6

由于两个原因,你不可能按照自己的意愿去做:

  • 您无法在Mac上运行Windows库(.dll文件)(.dylib);
  • 您无法从64位进程启动32位库.

因此,我看到三个解决方案:

  • 在Windows端制作一切(无论如何,如何使用Mac作为服务器?);
  • 使用Mac OS版本的Delphi XE2编译器(或FPC编译器)在对象pascal代码中创建一个小型服务器应用程序(使用套接字),然后从进程外的64位Java进程访问它.这不是一件容易的事 - 这个图书馆不是免费的,但可以帮到你 ;
  • 或者当然,用Java或其字节代码重写代码:也许Oxygene for JavaFPC JVM后端可能对您有所帮助.