Skip to content

Latest commit

 

History

History
101 lines (61 loc) · 3.47 KB

File metadata and controls

101 lines (61 loc) · 3.47 KB

rust-java 样例

English version, 英文版

简介

这个仓库包含调用 Java 方法的 Rust 代码,以及调用 Rust 方法的 Java 类。

样例清单

  1. sample000, 从 Java 调用 Rust 方法

  2. sample001, 在 Rust 中将 Java 原始类型转换为字节

  3. sample002, 在 Rust 中接受 Java 对象,并回调到 Java

  4. sample003, 逆转 Java 字节

  5. sample004, 在 Rust 中访问 Java 非堆内存

  6. sample005, 在 Rust 中访问 Java 基本类型数组

  7. sample006, 在 Rust 中创建 Java 对象

  8. sample007, 在 Rust 中为 Java 对象设置字段值

  9. sample008, 在 Rust 中加载 Java

    s008_class_buf.rs 是通过 java2u8vec.sh 生成的

  10. sample009, 在 Rust 中动态注册 Java 方法

更多...

构建

cargo build --release

cargotarget/release 构建 .so, 并会调用 build_java.sh 构建 .jar,里面的 resources 文件夹会包含 .so

如何使用

  1. 在 IDE 中调用 Java 单元测试
  2. 在 IDE 中调用 Java 单元测试集

备注:需要设置 JVM 参数: -DsampleLib=<path to lib>

或者

  1. 在命令行中执行 Java 单元测试

    gradle test --tests HelloWorldTest
  2. 在命令行中执行 Java 单元测试集

    gradle test --tests SamplesSuite

可在 JUnit 报告 中观察结果

感谢

感谢 metaworm(rust-java-demo)。当时我在学如何通过 Rust 调用 JNI 时,这篇文章 (url1/url2) 是最有效最详细的。