我正在尝试编写示例代码来创建java类的实例,然后使用该实例调用方法。我正在使用node-java模块来执行此操作。代码编译没有任何错误。但是,当我点击实际命中相同代码的URL时,我得到了类未找到的异常。
我已经验证了jar和它在index.js所在的目录中,并且jar还包含正在为其创建实例的类文件(Application.class)。
我的index.js文件
var java = require("java");
java.classpath.push("demo.jar");
var express = require('express');
var router = express.Router();
var Application = java.import('Application');
/* GET home page. */
router.get('/', function(req, res) {
var application = new Application();
var resp = application.getResponse();
res.render('index', { title: resp });
});
module.exports = router;
答案 0 :(得分:1)
抱歉我的英文。我有同样的问题。看[https://github.com/joeferner/node-java/issues/147] 我的代码:
`var java = require("java");
var path=require("path");
var fs=require("fs");
console.log("ruta in directory",path.join(__dirname));
console.log("exist file:",fs.existsSync(path.resolve(__dirname,"./lib-java/lib-tgd.jar")));
java.classpath.push("commons-lang3-3.1.jar");
java.classpath.push("commons-io.jar");
java.classpath.push(path.resolve(__dirname,"./lib-java/lib-tgd.jar"));
java.classpath.push(path.resolve(__dirname,"./lib-java/jackson-annotations- 2.5.1.jar"));
java.classpath.push(path.resolve(__dirname,"./lib-java/jackson-core-2.5.1.jar"));
java.classpath.push(path.resolve(__dirname,"./lib-java/jackson-databind-2.5.1.jar"));`
使用path.resolve 解决了文件路径的问题