【问题标题】:Unable to load DLL on Heroku (Java)无法在 Heroku (Java) 上加载 DLL
【发布时间】:2015-04-20 01:38:50
【问题描述】:

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

首先,我尝试在 localhost 上创建它。我遇到了类似“UnsatisfiedLinkError: not found DLL in java.library.path”的问题。这个问题的解决方案是本指南中的类 NativeUtils http://adamheinrich.com/blog/2012/how-to-load-native-jni-library-from-jar/ 。它在本地主机上完美运行。

但是当我在 heroku 上部署它时出现错误“无效的 ELF 标头(可能的原因:字节序不匹配)”。

我该如何应对?

【问题讨论】:

  • Heroku 是否适用于 Windows 系统?

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


【解决方案1】:

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

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

【讨论】:

  • 它是由我完成的:) 也许你知道是否可以在 windows 上使用 Visual c++ 编译器编译 .so?或者没有虚拟机的方式:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-06-26
  • 2012-01-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多