这个仓库包含调用 Java 方法的 Rust 代码,以及调用 Rust 方法的 Java 类。
-
sample000, 从
Java调用Rust方法 -
sample001, 在
Rust中将Java原始类型转换为字节 -
sample002, 在
Rust中接受Java对象,并回调到Java -
sample003, 逆转
Java字节 -
sample004, 在
Rust中访问Java非堆内存 -
sample005, 在
Rust中访问Java基本类型数组 -
sample006, 在
Rust中创建Java对象 -
sample007, 在
Rust中为Java对象设置字段值 -
sample008, 在
Rust中加载Java类s008_class_buf.rs是通过 java2u8vec.sh 生成的 -
sample009, 在
Rust中动态注册Java方法
cargo build --releasecargo 在 target/release 构建 .so, 并会调用 build_java.sh 构建 .jar,里面的 resources 文件夹会包含 .so。
- 在 IDE 中调用
Java单元测试 - 在 IDE 中调用
Java单元测试集
备注:需要设置
JVM参数:-DsampleLib=<path to lib>
或者
-
在命令行中执行
Java单元测试gradle test --tests HelloWorldTest -
在命令行中执行
Java单元测试集gradle test --tests SamplesSuite
可在 JUnit 报告 中观察结果
感谢 metaworm(rust-java-demo)。当时我在学如何通过 Rust 调用 JNI 时,这篇文章 (url1/url2) 是最有效最详细的。