2012-03-12 70 views
1

有沒有什麼辦法可以檢測到一個java應用程序運行的主機是否是虛擬機?只是想警告用戶,如果使用VM,他們可能(很少)會遇到問題,並且我們建議他們儘可能使用物理機器。我可以檢測主機是否是虛擬機?

+1

A *在VM上有問題的Java *應用程序?說實話,我發現很難相信,除非你使用本地代碼進行硬件訪問,例如一個3D引擎。你介意提供一些關於你的主機和客戶操作系統,虛擬機軟件以及你所看到的問題的信息嗎? – thkala 2012-03-12 11:29:24

回答

2

正如鏈接的問題所解釋的,是的,有辦法。

但是,在Java應用程序中這樣做會更棘手。您將需要使用System.exec(...)來運行本機應用程序,或者使用JNI調用本機庫來完成這項工作。

但坦率地說:

  • 爲什麼會在虛擬機上的純Java應用程序的經驗問題?難道你不能找到問題並修復它或提供解決方法嗎?

  • 如果您不能,那麼您爲什麼不直接在發行說明中描述問題?

+0

回答我的經驗中的原因問題。我們的客戶不會告訴我們他們正在VM中運行我們的產品,直到他們開始出現性能問題。客戶不會在VM中運行數週。如果我們能夠在早期發現它,提供配置建議或將它們轉移到專用的硬件中,它將爲我們節省很多痛苦。 – KaizenSoze 2013-09-25 12:58:12