我正在嘗試創建一個 node-pty 行程。在本地開發時,這作業正常,沒有問題。但是,當它在 Heroku 上運行時,它給出了錯誤:/app/.jdk/bin/java: cannot execute binary file
我試著用 just 運行它["java"],但給出了同樣的錯誤。因此,它無法啟動 java 二進制檔案。
但是,當我手動輸入命令時,它作業得很好。
const shell = os.platform() === 'win32' ? 'powershell.exe' : 'bash';
const ptyProcess = pty.spawn(shell, ["java", "-jar", "Klox.jar"], {
name: 'xterm-color',
cols: 80,
rows: 30,
cwd: process.env.HOME,
env: process.env
});
知道我該如何解決這個問題嗎?
uj5u.com熱心網友回復:
解決了問題,
不是使用 powershell 或 bash 生成 shell,而是直接使用您嘗試運行的可執行檔案生成 shell。所以,java就我而言。
實際上,我所做的:
const ptyProcess = pty.spawn("java", ["-jar", "Klox.jar"], {
name: 'xterm-color',
cols: 80,
rows: 30,
cwd: process.env.HOME,
env: process.env
});
所以,“java”而不是舊的shell變數。
要記住的另一件事是,在 Windows.exe上在末尾添加擴展名,否則會說找不到檔案。例如:java.exe在 windows 和javalinux 上。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/371158.html
