iT邦幫忙

0

nodejs 呼叫 java 顯示進度問題

  • 分享至 

  • xImage

我需要在JS中呼叫JAVA的程式並回報進度
在JAVA裡面有System.out.println在回報進度%
在console中可以用child.stdout.pipe(process.stdout);看到進度%數
但我想要把%抓到網頁上做成進度條,想請教方法

const { exec } = require('child_process');
const child = exec("java -jar AntDemo.jar");

child.stdout.pipe(process.stdout);

const child = exec("java -jar AntDemo.jar");

child.stdout.pipe(process.stdout);

child.stdout.on('close',()=>{
    fs.readFile("output.txt" , (err,data) =>{
      if(err) throw err;

      let output = data.toString().split(",");

      res.json({
        "success" : true,
        "message" : "",
        "data" : output,
      });
    });
});
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

2
海綿寶寶
iT邦大神 1 級 ‧ 2022-01-28 09:09:11

建議一步一步來
先「用 node.js 寫出網頁」
再「用 node.js 寫出網頁的進度條,資料寫死」
再「用 node.js 寫出網頁的進度條,資料由呼叫外部 java 程式取得」

看更多先前的回應...收起先前的回應...
adha9990 iT邦新手 4 級 ‧ 2022-01-28 09:37:26 檢舉

我呼叫外部程式跟顯示處理完的資料都完成了
現在是因為java需要執行一段時間,所以我想做進度條
但目前卡在沒辦法輸出進度,只有在shell上有顯示,想請求指教

fillano iT邦超人 1 級 ‧ 2022-01-28 15:18:13 檢舉

可以考慮用socket.io來接即時資訊,簡單一點的話,可以考慮Server-Send Event

stdout 就夠嗆了,還 socket.io 哩
我要寫個「沒有幫助」
/images/emoticon/emoticon65.gif

fillano iT邦超人 1 級 ‧ 2022-01-28 16:08:26 檢舉

用server-send event會簡單一點,如果java輸出是可以直接拿來送出sever-send event的格式,可能直接把stdout轉到server的輸出就可以了。

froce iT邦大師 1 級 ‧ 2022-01-28 16:34:35 檢舉

偷懶的方法是不要管進度,做完java直接打個post給node.js,再打SSE通知用戶做完就好了。

我要發表回答

立即登入回答