rust-jni 0.1.0

A package for easy Java interop
Documentation
extern crate rust_jni;

#[cfg(test)]
mod create_envs {
    use rust_jni::*;
    use std::sync::Arc;

    #[test]
    fn test() {
        let init_arguments = InitArguments::get_default(JniVersion::V8).unwrap();
        let vm = Arc::new(JavaVM::create(&init_arguments).unwrap());

        let env = vm.attach(&AttachArguments::new(&init_arguments)).unwrap();
        unsafe { assert_eq!(env.raw_jvm(), vm.raw_jvm()) };

        let child1 = {
            let vm = vm.clone();
            let attach_arguments = AttachArguments::new(&init_arguments);
            ::std::thread::spawn(move || {
                let _ = vm.attach(&attach_arguments).unwrap();
            })
        };

        let child2 = {
            let vm = vm.clone();
            let attach_arguments = AttachArguments::new(&init_arguments);
            ::std::thread::spawn(move || {
                let _ = vm.attach(&attach_arguments).unwrap();
            })
        };

        child1.join().unwrap();
        child2.join().unwrap();
    }
}