无法在 Heroku (Java) 上加载 DLL

Unable to load DLL on Heroku (Java)

本文关键字:加载 DLL Java Heroku      更新时间:2023-10-16

我想通过JNI从C++调用方法。为此,我需要使用系统方法System.loadLibrary。

首先,我尝试在本地主机上制作它。我遇到了"不满意的链接错误:在java.library.path中找不到DLL"的问题。此问题的解决方案是本指南中的类 NativeUtils http://adamheinrich.com/blog/2012/how-to-load-native-jni-library-from-jar/。它非常适合本地主机。

但是当我在 heroku 上部署它时,我有一个错误"无效的 ELF 标头(可能的原因:字节序不匹配)"。

我该如何应对?

Heroku 服务器基于 Linux ,而您的DLL只能在 Windows 上运行。这就是您收到错误的原因,解决方案是创建一个Linux共享库。我建议使用您的 Heroku 实例具有的 Linux 风格配置虚拟机,在那里构建您的库,并在您的存储库而不是 DLL 中使用它。

编辑:我找到了一篇文章,可以帮助您直接在 Heroku 实例上编译库:http://www.saintsjd.com/2014/05/12/run-vendored-binaries-on-heroku.html