【问题标题】:using of delphi dll in java spring projectjava spring项目中delphi dll的使用
【发布时间】:2012-07-09 06:23:22
【问题描述】:

请帮我把细节放在一起。 我已经扫描了很多小时的互联网,但结果并不好。

所以,我有:

  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
  1. 加载库的Java代码:

    System.loadLibrary("qvs")

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

非常感谢。

【问题讨论】:

  • 您根本无法在 Mac 上使用 DLL,除非您的 Mac 运行 Windows。
  • 我只是尝试在具有 32 位 JRE 的 32 位 MAC 上执行相同的步骤。我得到了同样的结果。

标签: java delphi dll java-native-interface


【解决方案1】:

不可能如你所愿,原因有二:

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

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

  • 在 Windows 端制作所有内容(无论如何,如何将 Mac 用作服务器?);
  • 使用 Mac OS 版本的 Delphi XE2 编译器(或 FPC 编译器)以对象 pascal 代码(使用套接字)创建一个小型服务器应用程序,然后从 64 位 Java 进程以进程外方式访问它。不是一件容易的事 - this library is not free, but may help you;
  • 当然,也可以用 Java 或其字节码重写代码:Oxygene for JavaFPC JVM back-end 可能会对您有所帮助。

【讨论】:

  • 非常感谢。我将尝试在我的 WIN 服务器上完成所有操作。
  • @mad 这是最简单的解决方案!
【解决方案2】:

Windows DLL 不能在 Mac OS 系统上使用(Windows 虚拟机除外)。

【讨论】:

  • 非常感谢。我将尝试在我的 WIN 服务器上完成所有操作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-08
  • 2021-04-14
  • 1970-01-01
相关资源
最近更新 更多