3
我正在構建一個在Node.js中使用Java的應用程序。我做了一個函數來檢查Java版本:驗證Java是否從Node.js安裝
function javaversion() {
var spawn = require('child_process').spawn('java', ['-version']);
spawn.stderr.on('data', function(data) {
data = data.toString().split('\n')[0];
var javaVersion = new RegExp('java version').test(data) ? data.split(' ')[2].replace(/"/g, '') : false;
if (javaVersion != false) {
// TODO: We have Java installed
} else {
// TODO: No Java installed
}
});
}
但對於Java的安裝不上,Node.js的拋出ENOENT錯誤的系統,因爲模塊「child_process」只是不能產卵的過程。我如何驗證Java是否從Node.js安裝?
我感謝您的幫助!
你有沒有考慮檢查類路徑或...等環境變量?然後尋找二進制文件? – WiredPrairie
@WiredPrairie,是的,我認爲,但對所有系統來說這不是一個好主意。例如,在OS X 10.8中,CLASSPATH未設置。我解決了處理產生該過程的錯誤的問題,就像Sudsy建議的那樣。謝謝。 – Formiga
我已經安裝了Java(根據Windows安裝程序),但它不在路徑中,因此此方法完全失敗。所以,對於「所有系統」來說,這似乎不是一個好的解決方案。 – WiredPrairie