在Windows平台借助cmake编译jni
Posted zhangmingcsdn
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Windows平台借助cmake编译jni相关的知识,希望对你有一定的参考价值。
依赖
- jdk
- visual studio(只需安装 cl 即可)
(备注:我使用的是Visual Studio Code作为代码编辑工具,当然也可以使用txt或vim等其它文本编辑工具)
步骤
- 创建Java类文件
- mkdir projectDir & cd projectDir
- mkdir java & cd java
- mkdir simen & cd simen //simen为包名
- vim Test.java
package simen;
import java.nio.file.FileSystems;
public class Test
static
System.load(
FileSystems.getDefault()
.getPath("./build/Debug/jnitests.dll") // Dynamic link
.normalize().toAbsolutePath().toString());
public static void main(String[] args)
System.out.println("Test"+testVal());
public static native int testVal();
- cd … //回到java目录
- javac simen\\Test.java
- 创建jni文件
- javah simen.Test //生成simen_Test.h文件
- vim simen_Test.cpp
#include "simen_Test.h"
JNIEXPORT jint JNICALL Java_simen_Test_testVal
(JNIEnv *, jclass)
return 1;
- 创建CMakeLists.txt
- vim CMakeLists.txt
cmake_minimum_required(VERSION 2.8)
project(JniExample)
set(CMAKE_BUILD_TYPE Release)
find_package(JNI REQUIRED)
include_directories($JNI_INCLUDE_DIRS)
set(CMAKE_CXX_FLAGS "$CMAKE_CXX_FLAGS -std=c++11")
set(SOURCE_FILES simen_Test.cpp)
add_library(jnitests SHARED $SOURCE_FILES)
- 编译生成 jnitests.dll
- mkdir build & cd build
- cmake …
- cd CMakeFiles
- cmake --build …
- 运行Test类
- cd ProjectDir\\src\\main\\java
- java simen.Test -DC:\\
(备注 C:\\ 为运行目录,java程序需要)
示例项目
源码链接: https://pan.baidu.com/s/1PmSFBwtzKKMwwDfGbAQRVg 提取码: xsjb
以上是关于在Windows平台借助cmake编译jni的主要内容,如果未能解决你的问题,请参考以下文章