CMAKE将java库添加到cpp项目中

时间:2017-10-18 18:40:16

标签: java c++ cmake

我正在尝试构建一个可以从c ++调用java代码的应用程序。

所以我可以写这样的东西

#include<jni.h>

然后做这样的事情How to access the Java method in a C++ application 我有问题将库添加到CMakeLists.txt 那就是我现在拥有的东西:

cmake_minimum_required(VERSION 3.8)
project(test_cpp_jni)

set(CMAKE_CXX_STANDARD 11)    
include_directories("${JAVA_HOME}/include ${JAVA_HOME}/include/linux")

link_libraries(${JAVA_HOME}/jre/lib/amd64/server/libjvm.so)

set(SOURCE_FILES
    main.cpp
    wrapper/WrapperJNI.cpp
    wrapper/WrapperJNI.h)


add_executable(test_cpp_jni ${SOURCE_FILES})

target_link_libraries(test_cpp_jni ${JAVA_HOME}/jre/lib/amd64/server/libjvm.so)

我应该纠正/添加什么来使这项工作。 在此先感谢您的任何帮助

1 个答案:

答案 0 :(得分:0)

您可以使用以下示例解决问题:

find_package(JNI)
    if (JNI_FOUND)
        include_directories(SYSTEM ${JAVA_INCLUDE_PATH})
        include_directories(SYSTEM ${JAVA_INCLUDE_PATH2})
    endif()

if (JNI_FOUND)
    target_link_libraries(<example> ${JAVA_JVM_LIBRARY})
endif()