2009-11-17 25 views

回答

3

我能想到的最簡單的事情是在運行時查看系統屬性,因爲兩個服務器幾乎都會定義自己的屬性。例如,JBoss 4定義了jboss.server.dir系統屬性。檢查該屬性是否存在,如果存在,那麼你可以假設你正在該服務器下運行。 OC4J會有類似的東西。

或者,嘗試反射加載屬於服務器基礎架構一部分的類(例如,JBoss 4中的org.jboss.Version)。如果存在,你知道你在服務器上。

2

你可以通過ServletContext#getServerInfo()找到。

+1

好奇......我懷疑會返回servlet容器的名稱,而不是應用服務器,但它可能已經足夠。 – skaffman

+0

取決於應用程序服務器。例如,JBoss 4.2.x和更新版本會返回「JBoss」,但舊版本會返回「Apache Tomcat」。 – BalusC

0

更改爲System.getProperty("jboss.home.dir")

相關問題