在Intellij IDEA中创建的纯Java项目是否可以使用.so文件(如Android项目那样)?
通过互联网浏览我无法找到有关它的任何信息。听起来很奇怪。
更新:
Android中的内容是一个简单的脚本:
def ndkBuild;
def ndkBuildingDir = mainSrcDir;
def hasNdk = false;
if (System.env.ANDROID_NDK_HOME != null) {
hasNdk = true;
ndkBuild = new File(System.env.ANDROID_NDK_HOME, ndkBuildFilename())
}
commandLine ndkBuild, "--directory", ndkBuildingDir, "APP_BUILD_SCRIPT=${ndkBuildingDir}/native/Android.mk", "NDK_APPLICATION_MK=${ndkBuildingDir}/native/Application.mk"
我找不到任何关于在Java项目中做这些事情的文档。
答案 0 :(得分:1)
简而言之,是的。
然而,它将不再是纯Java项目,并将在编译/编写本机二进制文件的系统上引入依赖。
要做到这一点,编写JNi代码,就像在android上做的那样(你似乎熟悉它),编译成带有某些编译器标志的动态库,然后在Java代码中使用System.loadLibrary("foo");
,就像你在Android项目上一样。
尽管如此,还有很多其他内容,而且网上有很多tutorials描述了如何做到这一点。我建议在选择JNI之前尝试解决Java中的问题,因为有很多地方会绊倒并导致JNI中的严重错误。
我从来没有在IDEA中编写过任何JNI代码,我确信这是可能的,但它不是真正的C或C ++ IDE,因此您可能希望在该部分使用其他东西。