我正在尝试构建一个可以从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)
我应该纠正/添加什么来使这项工作。 在此先感谢您的任何帮助
答案 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()