有没有办法在运行时确定Java EE版本? [英] Is there a way to determine the Java EE version at runtime?
问题描述
是否有编程方式来确定哪个版本的java ee环境可用?
Is there programmatic way to determine which version of the java ee environment is available?
推荐答案
没有标准的方法可以做那。你可以做的最接近的是使用reflection / ClassLoader并检查在给定的Java EE版本中引入的特定API类/方法。
There's no standard way to do that. The closest you could do is use reflection/ClassLoader and check for specific API classes/methods that were introduced in a given Java EE version.
我不知道如何:
- Java EE 6 / EJB 3.1添加
javax.ejb.Singleton
- 添加了Java EE 5 / EJB 3.0
javax.ejb.Stateless
- 添加了J2EE 1.4 / EJB 2.1
javax.ejb.TimerService
- 添加了J2EE 1.3 / EJB 2.0
javax.ejb.MessageDrivenBean
- Java EE 6 / EJB 3.1 added
javax.ejb.Singleton
- Java EE 5 / EJB 3.0 added
javax.ejb.Stateless
- J2EE 1.4 / EJB 2.1 added
javax.ejb.TimerService
- J2EE 1.3 / EJB 2.0 added
javax.ejb.MessageDrivenBean
在此之前它是J2EE 1.2 / EJB 1.1
Before that it's J2EE 1.2 / EJB 1.1
虽然,请注意,如果这是针对Tomcat(通过标记判断),最好的方法是只检查 System.getProperty(tomcat.version)
。您应该能够基于Tomcat版本暗示servlet版本。
Though, note, if this is for Tomcat (judging by the tag), the best way is to just check System.getProperty("tomcat.version")
. You should be able to imply the servlet version based on the Tomcat version.
这篇关于有没有办法在运行时确定Java EE版本?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!