rust调用java实现方法

(1)Cargo.toml 增加:

bash 复制代码
j4rs = "0.18.0"

(2)java源码:

java 复制代码
public class HelloWorld {
    public static String sayHello(String name) {
			return "Hello "+name;
    }
}

编译:

javac HelloWorld.java

生成HelloWorld.class,设class所在目录是/tmp

(3)rust代码调用java:

main.rs:

rust 复制代码
use j4rs::{ClasspathEntry, Instance, InvocationArg, Jvm, JvmBuilder};
fn main() {
    let entry = ClasspathEntry::new("/tmp");
    let jvm: Jvm = JvmBuilder::new().classpath_entry(entry).build().unwrap();
	 let parameter= "hello";
	 let result_instance= jvm
        .invoke_static(
            "HelloWorld", // The Java class to invoke
            "sayHello",   // The static method of the Java class to invoke
            &[InvocationArg::try_from(parameter).unwrap()],
        )
        .unwrap();

    let result: String = jvm.to_rust(result_instance).unwrap();
    print!("{}", result);
}
相关推荐
追随者永远是胜利者3 分钟前
(LeetCode-Hot100)49. 字母异位词分组
java·算法·leetcode·职场和发展·go
吴声子夜歌4 分钟前
RxJava——Flowable与背压
android·java·rxjava
Thanwind9 分钟前
大二上结束随笔
java
keyborad pianist15 分钟前
Web开发 Day1
开发语言·前端·css·vue.js·前端框架
坚持就完事了16 分钟前
Python的类型注解
开发语言·python
wjs202426 分钟前
HTML URL 编码
开发语言
wjs202431 分钟前
Lua 循环
开发语言
Evand J40 分钟前
matlab GUI制作界面的一些笔记(入门)
开发语言·笔记·matlab
我是大猴子40 分钟前
Java面经
java·开发语言
Never_Satisfied1 小时前
在c#中,如何删除字符串中的第x个字符
开发语言·c#