的最好方法是使用一个定义文件node-java
API,但是使用你的第一个代码片段:
var java = require("java");
你可以使用一个参考this node typing如下:
/// <reference path="node/node.d.ts" />
var java = require("java");
java.classpath.push("commons-lang3-3.1.jar");
java.classpath.push("commons-io.jar");
var list = java.newInstanceSync("java.util.ArrayList");
java.newInstance("java.util.ArrayList", function(err, list) {
list.addSync("item1");
list.addSync("item2");
});
var ArrayList = java.import('java.util.ArrayList');
var list2 = new ArrayList();
list.addSync('item1');
使用第二个片段:
import java = module("java");
您将需要一个定义文件。要踢启动你可以创建一个node-java.d.ts
文件用下面的代码:
module "java" {
export var classpath: { push(jar: string); };
export function newInstanceSync(type: string);
export function newInstance(type: string, callback: (err, list) => any);
export function import(type: string);
export function newArray(...item: any[]);
export function callStaticMethodSync(...args: any[]);
}
,并使用该文件如下:
/// <reference path="node-java.d.ts" />
import java = module("java");
java.classpath.push("commons-lang3-3.1.jar");
java.classpath.push("commons-io.jar");
var list = java.newInstanceSync("java.util.ArrayList");
java.newInstance("java.util.ArrayList", function(err, list) {
list.addSync("item1");
list.addSync("item2");
});
var ArrayList = java.import('java.util.ArrayList');
var list2 = new ArrayList();
list.addSync('item1');
有时间,我会发一个node-java
定义DefinitelyTyped库。
你用什么模块加载器? RequireJS? – thomaux 2013-03-11 09:14:15
@Anzeo node.js有一个内置的模块加载器。 – Fenton 2013-03-11 10:17:47
@SteveFenton Doh! :) – thomaux 2013-03-20 12:35:02