簡體   English   中英

使用Express Framework和Node.js時在運行時出現java.lang.NoClassDefFoundError

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM