2009-11-17 23 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")

相关问题