Commit e35ca842 authored by captainwong's avatar captainwong

centos7 & macos bulid javademo ok

parent 52bb8993
现在已经支持 `Java` 通过 `JNI` 调用 `C++` 的动态链接库。 现在已经支持 `Java` 通过 `JNI` 调用 `C++` 的动态链接库。
## Linux ## Unix-based
*测试环境使用 `Ubuntu16.04` + `java-8-openjdk-amd64`,用户环境可以自行修改 `javademo.sh`。* 已经在以下环境测试成功:
* `Ubuntu16.04` + `java-8-openjdk-amd64`
* `Centos 7` + `java-1.8.0-openjdk-1.8.0.252.b09-2.el7_8.x86_64`
* `macOS Catalina` + `jdk-9.0.1`
用户环境可以自行修改 `javademo.sh`
执行 `./javademo.sh` 执行 `./javademo.sh`
## Windows ## Windows
1. `javac -encoding utf-8 javademo/jni/AdemcoHbLibrary.java && javah -d javademo/cpp -jni javademo.jni.AdemcoHbLibrary` 1. `javac -encoding utf-8 javademo/jni/AdemcoHbLibrary.java && javah -d javademo/cpp -jni javademo.jni.AdemcoHbLibrary`
2. 打开 `ademco_hb.sln`, 以 `Release/x64` 编译 `ademco_java` 项目,生成 `x64/Release/ademco_hb.dll` 2. 打开 `ademco_hb.sln`, 以 `Release/x64` 编译 `ademco_java` 项目,可能需要修改项目属性 `C/C++` --> `Additional Include Directories`生成 `x64/Release/ademco_hb.dll`
3. `java javademo.jni.SimpleServer 12345` 进行测试 3. `java javademo.jni.SimpleServer 12345` 进行测试
......
...@@ -3,9 +3,21 @@ ...@@ -3,9 +3,21 @@
mkdir -p build mkdir -p build
JAVADEMO_SRC='./javademo/cpp' JAVADEMO_SRC='./javademo/cpp'
# Ubuntu 16.04
JAVA_INCLUDE='/usr/lib/jvm/java-8-openjdk-amd64/include' 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
javac -encoding utf-8 javademo/jni/AdemcoHbLibrary.java && javah -d javademo/cpp -jni javademo.jni.AdemcoHbLibrary javac -encoding utf-8 javademo/jni/AdemcoHbLibrary.java && javah -d javademo/cpp -jni javademo.jni.AdemcoHbLibrary
g++ -std=c++11 $JAVADEMO_SRC/pch.cpp $JAVADEMO_SRC/dllmain.cpp -I$JAVADEMO_SRC -Iinclude -I$JAVA_INCLUDE -I$JAVA_INCLUDE/linux -fPIC -shared -o build/libademcojava.so g++ -std=c++11 $JAVADEMO_SRC/pch.cpp $JAVADEMO_SRC/dllmain.cpp -I$JAVADEMO_SRC -Iinclude -I$JAVA_INCLUDE -I$JAVA_INCLUDE_OS -fPIC -shared -o build/libademcojava.so
javac -encoding utf-8 javademo/jni/SimpleServer.java javac -encoding utf-8 javademo/jni/SimpleServer.java
java javademo.jni.SimpleServer 12345 java javademo.jni.SimpleServer 12345
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment