Intellij IDEA Java项目和JNI

时间:2013-12-30 10:48:51

标签: java intellij-idea java-native-interface

在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项目中做这些事情的文档。

1 个答案:

答案 0 :(得分:1)

简而言之,是的。

然而,它将不再是纯Java项目,并将在编译/编写本机二进制文件的系统上引入依赖。

要做到这一点,编写JNi代码,就像在android上做的那样(你似乎熟悉它),编译成带有某些编译器标志的动态库,然后在Java代码中使用System.loadLibrary("foo");,就像你在Android项目上一样。

尽管如此,还有很多其他内容,而且网上有很多tutorials描述了如何做到这一点。我建议在选择JNI之前尝试解决Java中的问题,因为有很多地方会绊倒并导致JNI中的严重错误。

我从来没有在IDEA中编写过任何JNI代码,我确信这是可能的,但它不是真正的C或C ++ IDE,因此您可能希望在该部分使用其他东西。