> 生活
odejs调用java返回对象(odejs调用java方法)
导语:NodeJS 调用Java
NodeJs调用Java的原理:nodejs-java运行原理:使用c++通过jvmti JNI去调用java的类,nodejs再调用c++,用c++做中转实现的一个功能。JNI 是java本地开发接口,JNI 是一个协议,这个协议用来沟通java代码和外部的本地代码(c/c++),通过这个协议,java代码就可以调用外部的c/c++代码,外部的c/c++代码也可以调用java代码,Android系统源码中随处可见JNI的使用”
NodeJs调用Java注意事项:1)使用cnpm减少安全的信息
2)使用JDK1.8,并且避免32位的JDK报错
详细代码:index.js内容:
var java = require (&39;);var fs = require(&34;);var list = java.newInstanceSync(&34;);list.add(&34;);list.add(&34;);console.log(list.sizeSync());console.log(list.toStringSync());
paskage.json
{ &34;: &34;, &34;: &34;, &34;: &34;, &34;: &34;, &34;: { &34;: &34;Error: no test specified\&34; }, &34;: &34;, &34;: &34;, &34;: { &34;: &34;, &34;: &34; }}
Java依赖管理:&34;;var fs = require(&34;);var java = require(&34;);var baseDir = &34;;var dependencies = fs.readdirSync(baseDir);?dependencies.forEach(function(dependency){java.classpath.push(baseDir + &34; + dependency);})?java.classpath.push(&34;);java.classpath.push(&34;);?exports.getJavaInstance = function() {return java;}var java = require(&34;);java.classpath.push(&34;);java.classpath.push(&34;);var list1 = java.newInstanceSync(&34;);console.log(list1.sizeSync()); // 0list1.addSync(‘item1‘);console.log(list1.sizeSync()); // 1java.newInstance(&34;, function(err, list2) {list2.addSync(&34;);list2.addSync(&34;);console.log(list2.toStringSync()); // [item1, item2]});var ArrayList = java.import(‘java.util.ArrayList‘);var list3 = new ArrayList();list3.addSync(‘item1‘);list3.equalsSync(list1); // true
执行结果
本文内容由小里整理编辑!