delphi动态链接库在javaspring项目中的应用

delphi动态链接库在javaspring项目中的应用,java,delphi,dll,java-native-interface,Java,Delphi,Dll,Java Native Interface,请帮我整理一下细节。 我在网上浏览了好几个小时,但结果不太好 因此,我: Delphi为JNI编写的DLL(来自32位comp上的32位Delphi) 我的64位MAC上的Java web项目(Tomcat,Spring) System.out.println(System.getProperty(“java.library.path”))写入“/tmp”,这是正确的 在/tmp中,我有来自delphi的qvs.dll 当我启动项目时,出现异常: java.lang.UnsatisfiedLin

请帮我整理一下细节。 我在网上浏览了好几个小时,但结果不太好

因此,我:

  • Delphi为JNI编写的DLL(来自32位comp上的32位Delphi)

  • 我的64位MAC上的Java web项目(Tomcat,Spring)

  • System.out.println(System.getProperty(“java.library.path”))写入“/tmp”,这是正确的

  • 在/tmp中,我有来自delphi的qvs.dll

  • 当我启动项目时,出现异常:

    java.lang.UnsatisfiedLinkError: no qvs in java.library.path
    
  • 要加载库的Java代码:

    系统加载库(“qvs”)

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


    非常感谢。

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

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

    无法按您的意愿执行,原因有二:

    • 不能在Mac(.dylib)上运行Windows库(.dll文件)
    • 不能从64位进程启动32位库
    因此,我认为有三种解决办法:

    • 让一切都在Windows端(无论如何,如何使用Mac作为服务器?)
    • 使用Mac OS版本的Delphi XE2编译器(或FPC编译器)以对象pascal代码(使用套接字)创建一个小型服务器应用程序,然后从64位Java进程访问它,进程外。这不是一件容易的事
    • 当然,也可以用Java或其字节码重写代码:也许或可能对您有所帮助

      • 由于两个原因,您不可能按照自己的意愿行事:

        • 不能在Mac(.dylib)上运行Windows库(.dll文件)
        • 不能从64位进程启动32位库
        因此,我认为有三种解决办法:

        • 让一切都在Windows端(无论如何,如何使用Mac作为服务器?)
        • 使用Mac OS版本的Delphi XE2编译器(或FPC编译器)以对象pascal代码(使用套接字)创建一个小型服务器应用程序,然后从64位Java进程访问它,进程外。这不是一件容易的事
        • 当然,也可以用Java或其字节码重写代码:也许或可能对您有所帮助

        除非你的Mac电脑运行Windows,否则你根本无法在Mac电脑上使用DLL。我只是尝试在32位Mac电脑上使用32位JRE执行相同的步骤。我得到了同样的结果。你根本不能在Mac上使用DLL,除非你的Mac运行Windows。我只是尝试在32位Mac上使用32位JRE执行相同的步骤。我得到了同样的结果。非常感谢。我将尝试在我的WIN服务器上实现所有功能。@这是最简单的解决方案!谢谢。我将尝试在我的WIN服务器上实现所有功能。@这是最简单的解决方案!谢谢。我会尽量在我的WIN-server上实现所有功能。非常感谢。我将尝试在我的WIN服务器上实现所有功能。