无法在Heroku上加载DLL(Java)

时间:2015-04-19 17:07:35

标签: java c++ heroku dll java-native-interface

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

首先,我尝试在localhost上创建它。我遇到了一些问题" UnsatisfiedLinkError:在java.library.path"中找不到DLL。此问题的解决方案是本指南http://adamheinrich.com/blog/2012/how-to-load-native-jni-library-from-jar/中的类NativeUtils。它完全适用于localhost。

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

我该如何应对?

1 个答案:

答案 0 :(得分:2)

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

编辑:我发现了一篇可能有助于您直接在Heroku实例上编译库的文章:http://www.saintsjd.com/2014/05/12/run-vendored-binaries-on-heroku.html