java.lang.NoClassDefFoundError在运行时使用express框架和node.js

我想写一个示例代码来创build一个java类的实例,然后调用一个使用该实例的方法。 我正在使用node-java模块来做到这一点。 代码编译没有任何错误。 但是,当我点击的URL实际上碰到相同的代码,然后我得到的类没有发现exception。

我已经validation了这个jar,它和index.js在同一个目录下,jar也包含了正在为其创build实例的类文件(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; 

对不起我的英语不好。 我有同样的问题。 看看[ https://github.com/joeferner/node-java/issues/147%5D我的代码:

 `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解决了文件path的问题

Interesting Posts