Mac下Rust JNI测试环境搭建问题:无法找到libjava.dylib
Mac下JNI Rust测试环境启动失败:找不到libjava.dylib
我正在使用crate jni = { version = "0.20.0", features = ["invocation"] } 搭建可运行JNI代码的测试环境,启动代码如下:
let jvm_args = InitArgsBuilder::new() .version(JNIVersion::V8) .option("-Xcheck:jni") .build() .unwrap(); let jvm = JavaVM::new(jvm_args).unwrap(); let _guard = jvm.attach_current_thread().unwrap(); let env = jvm.get_env().unwrap(); JavaClasses::init(&env);
但在Mac上无法运行,当IDE RustRover 启动二进制文件时,总是无法找到动态链接库,报错:
Error: could not find libjava.dylib Failed to GetJREPath()
我尝试查看二进制文件的rpath信息,没有返回结果:
➜ blaze git:(tests) ✗ otool -l xxxlaze/target/debug/deps/blaze_tests-b310798913eec8e4 | ag -C 5 LC_RPATH ➜ blaze git:(tests) ✗
我已尝试在build.rs中进行如下设置,但问题仍未解决:
println!("cargo:rustc-link-search=native={}", libjvm_path.display()); // println!("cargo:rustc-link-arg=-Wl,-rpath={}", libjvm_path.display()); println!("cargo:rustc-env=LD_LIBRARY_PATH={}", libjvm_path.display());
内容的提问来源于stack exchange,提问作者zinking
相关产品推荐
相关产品推荐

