2
我開發一個Node.js應用程式,我需要執行Java代碼中執行的Java項目。與節點的JRE模塊
我使用去節點的JRE模塊(https://www.npmjs.com/package/node-jre)。
在這個網站的例子(Hello.class)與該代碼運行正常和compilling德Hello類通過控制檯的javac Hello.java:
var output = jre.spawnSync( // call synchronously
['java'], // add the relative directory 'java' to the class-path
'Hello', // call main routine in class 'Hello'
['World'], // pass 'World' as only parameter
{ encoding: 'utf8' } // encode output as string
).stdout.trim();
問題是,當我試圖執行我的java項目(用eclipse開發)。該文檔說,在這個目錄中'java'搜索jar文件。所以,這是我嘗試的第一件事:將該項目導出到jar,但它不起作用。
所以,我怎麼能執行一個完整的項目(只有一個主類)?我想說,該項目使用外部庫是很重要的。
罐子裏面的META-INF/MANIFEST.MF的樣子:
Manifest-Version: 1.0
Class-Path: .
Main-Class: com.packagename.example1.ClassName
Name: org/apache/oro
Specification-Title: Jakarta ORO
Implementation-Title: org.apache.oro
Implementation-Version: 2.0.8 2003-12-28 11:00:13
Specification-Version: 2.0.8
Specification-Vendor: Apache Software Foundation
Implementation-Vendor: Apache Software Foundation
所以,我的代碼是:
var output = jre.spawnSync( // call synchronously
['java'], // add the relative directory 'java' to the class-path
'ClassName', // call main routine in class 'Hello'
['World'], // pass 'World' as only parameter
{ encoding: 'utf8' } // encode output as string
).stdout.trim();
而且我也試圖與:
var output = jre.spawnSync( // call synchronously
['java'], // add the relative directory 'java' to the class-path
'com.packagename.example1.ClassName', // call main routine in class 'Hello'
['World'], // pass 'World' as only parameter
{ encoding: 'utf8' } // encode output as string
).stdout.trim();
'java'是我在同級別節點中的文件夾server.js
什麼是你清單文件看起來像在jar裏面?主類是否被聲明?類路徑? – Adonis
Manifiest:'Manifest-Version:1.0 Class-Path:。 主類:com.package.example1.ClassName' – aitana
您可以編輯您的文章,如果需求是添加細節。同時請檢查如何創建一個MCVE:https://stackoverflow.com/help/mcve它將幫助任何人看到帖子瞭解並重現您的問題 – Adonis