#!/bin/bash mkdir -p build JAVADEMO_SRC='./javademo/cpp' # Ubuntu 16.04 JAVA_INCLUDE='/usr/lib/jvm/java-8-openjdk-amd64/include' # Centos 7 #JAVA_INCLUDE='/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.252.b09-2.el7_8.x86_64/include' # macOS Catalina #JAVA_INCLUDE='/Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home/include' # Ubuntu & Centos JAVA_INCLUDE_OS=$JAVA_INCLUDE/linux # macOS #JAVA_INCLUDE_OS=$JAVA_INCLUDE/darwin # 编译Java类 javac -encoding utf-8 javademo/jni/AdemcoHbLibrary.java # 生成C++头文件 javah -d javademo/cpp -jni javademo.jni.AdemcoHbLibrary # 生成C++动态库,目标文件 ./build/libademcojava.so g++ -std=c++11 $JAVADEMO_SRC/pch.cpp $JAVADEMO_SRC/dllmain.cpp -I$JAVADEMO_SRC -I../include -I$JAVA_INCLUDE -I$JAVA_INCLUDE_OS -fPIC -shared -o build/libademcojava.so # 编译使用动态库的Java示例 javac -encoding utf-8 javademo/jni/SimpleServer.java # 执行使用动态库的Java示例 java javademo.jni.SimpleServer 12345