- 安装依赖
github java 库 github.com/joeferner/n…
npm i java
// window 需提前安装
npm install --global --production windows-build-tools
- 直接引入jar包
const java = require("java");
java.classpath.push("./jar/epochcloud-flightDataAnalysisTools.jar");
- 调用jar包静态方法
// //调用静态方法:传递整数数组
const ArrayExample = java.import("cn.net.epoch.MyClass");
const intArray = java.newArray("int", [1, 2, 3, 4, 5]); // 创建 Java 熱数数组
const sumResult = ArrayExample.sumArrayStaticSync(intArray);
console.log("Sum of array(static):", sumResult);
- 调用实例方法:传递字符串数组
const instance = new ArrayExample(); // 创建实例
const stringArray = java.newArray("java.lang.String", [
"Hello",
"World",
"Node.js",
]); // 创建 Java 字符串数组
const joinResult = instance.joinArrayInstanceSync(stringArray); // 调用实例方法
console.log("Joined array (instance):", joinResult);
- java对应代码
package cn.net.epoch;
public class MyClass {
// 静态方法
public static String sayHelloStatic(String name) {
return "Hello (static), " + name + "!";
}
// 实例方法
public String sayHelloInstance(String name) {
return "Hello (instance), " + name + "!";
}
// 静态方法:计算整数数组的总和
public static int sumArrayStatic(int[] numbers) {
int sum = 0;
for (int num : numbers) {
sum += num;
}
return sum;
}
// 实例方法:将字符串数组连接为一个字符串
public String joinArrayInstance(String[] strings) {
return String.join(", ", strings);
}
}
- 其他
使用的方法官网示例都有,electron 使用的时候 会有奇奇怪怪的问题,可换成
node-java-bridge是用rust写的,node-java-bridge在打包不同平台时,需在作者仓库拷贝,对应平台的包,然后设置asarUnpack,将所有包打进去。
asarUnpack: [
"node_modules/java-bridge/**",
"node_modules/java-bridge-*/**",
],