[英]java.lang.NoClassDefFoundError at runtime when using express framework and node.js
我正在嘗試編寫示例代碼來創建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;
對不起我的英語不好。 我有同樣的問題。 看[ 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解決了文件路徑的問題
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.