我正在尝试将我的应用程序在线部署到Web服务器上(到目前为止,我一直在使用heroku,但我对其他服务持开放态度)。
我正在使用IntelliJ
并制作了一个Spring应用程序(使用Tomcat 7运行)。我的应用程序的要求之一是运行一些C
代码。我研究了 JNI,并成功地用我的C
代码编译了一个.so
库。
一切都在当地完美运作。为了让IntelliJ
正确加载.so
库,我将其放在IntelliJ
的bin/
目录中(我认为还有一些方法可以使用 VM 选项-Djava.library.path
将Tomcat
定向到带有 .so 文件的目录)。
问题是:我应该如何继续尝试将我的应用程序放在某个地方,知道我需要 Tomcat 来加载 JNI 库?
在 Web 服务器堆栈下使用 JNI 是不明智的;如果任何本机代码炸弹,它将关闭整个Web服务器。
如果您绝对需要本机代码,另一种方法是将该代码作为独立应用程序运行,并具有公开的 RMI 接口。