2017-10-17 131 views
1

我已經創建了一個nodejs應用程序。它在我的package.json文件中有jdbc依賴項。我發現如果目標機器沒有安裝jre,我的應用程序無法啓動。由於jdbc只是我應用程序中的可選功能,因此我想知道是否有方法讓我的應用程序在沒有安裝jre的環境中運行。nodejs是否支持運行時依賴?

理想情況下,我想要實現這樣的邏輯:

1,檢測在目標計算機是否安裝有jre與否

2,如果已安裝,啓用此功能

3,如果不,禁用此功能

所以我需要一個運行時依賴nodejs爲了支持這個要求。

+0

'require'只是普通的JavaScript代碼,所以你可以在它周圍嘗試{...} catch(err){...}。 – tadman

+0

@tadman這並沒有真正解決核心問題,即在安裝Java時應該激活它。 –

+0

很多時候,擁有某種設置系統會比僅僅因爲安裝它而自動檢測和使用它更好。如果作爲用戶我不希望Java涉及您的應用程序,我只是爲了其他原因安裝了它? – tadman

回答

3

你的問題有兩個部分:

  1. 可以檢測機器是否已經安裝了Java?
    是的 - 你可以使用代碼如this這將執行一個shell命令來確定是否安裝JRE,並可能驗證版本。

  2. 您可以在運行時選擇性地包含依賴項嗎?
    同樣是 - 你可以只使用一個if語句,如:

    var jbdc; if(java_installed){ jbdc = require('jbdc'); }

這是說,如果你是從jbdc越來越在安裝時的錯誤,你仍然要手動有如果支持Java,則選擇安裝jbdc。爲此,請將jbdc添加到您的package.json,作爲optional dependency