9
A
回答
10
你可以做类似的被用于以下弄清楚JAXB IMPL:
import javax.xml.bind.JAXBContext;
public class Demo {
private static final String MOXY_JAXB_CONTEXT = "org.eclipse.persistence.jaxb.JAXBContext";
private static final String METRO_JAXB_CONTEXT = "com.sun.xml.bind.v2.runtime.JAXBContextImpl";
public static void main(String[] args) throws Exception {
JAXBContext jc = JAXBContext.newInstance(Root.class);
String jaxbContextImpl = jc.getClass().getName();
if(MOXY_JAXB_CONTEXT.equals(jaxbContextImpl)) {
System.out.println("EclipseLink MOXy");
} else if(METRO_JAXB_CONTEXT.equals(jaxbContextImpl)) {
System.out.println("Metro");
} else {
System.out.println("Other");
}
}
}
你可以得到有关的EclipseLink版本信息从它正在使用的版本类:
import org.eclipse.persistence.Version;
public class VersionDemo {
public static void main(String[] args) {
System.out.println(Version.getVersion());
}
}
0
基于Blaise Doughan的回答,稍作修改(JUnit测试)。请注意,Metro实现的包似乎已经发生了变化(可能在Java6u4左右)。还没有自检界面?伤心!
import org.junit.Test;
public class JaxbVersion {
@Test
public void printJaxbInformation() throws JAXBException {
String MOXY = "org.eclipse.persistence.jaxb";
String METRO_EARLY = "com.sun.xml.bind.v2";
String METRO_LATE = "com.sun.xml.internal.bind.v2"; // since JDK 6u4 (?)
String CAMEL = "org.apache.camel.converter.jaxb";
Class<?> clazz = SomeJaxbGeneratedClass.class;
// http://docs.oracle.com/javaee/7/api/javax/xml/bind/JAXBContext.html
JAXBContext jc = JAXBContext.newInstance(clazz);
String jcClassName = jc.getClass().getName();
String res;
if (jcClassName.startsWith(MOXY)) {
res = "EclipseLink MOXy";
} else if (jcClassName.startsWith(METRO_EARLY) || jcClassName.startsWith(METRO_LATE)) {
res = "Oracle Metro";
} else if (jcClassName.startsWith(CAMEL)) {
res = "Apache Camel";
} else {
res = "Unknown";
}
res = res + "(" + jcClassName + ")";
System.out.println(res);
}
}
相关问题
- 1. 如何知道使用pip安装了哪些软件包
- 2. 哪个JAXB实现实现Marshaller.getNode()?
- 3. 如何知道在哪些版本中引入了某一行?
- 4. 我该如何让rpm知道里面提供了哪些库?
- 5. 如何知道已从JTextPane中删除了哪些文本
- 6. 如何知道从DataTable中选择了哪些行
- 7. 我如何知道在project.json中添加了哪些导入?
- 8. 我如何知道我安装了哪些Eclipse M2E连接器?
- 9. 如何知道哪些子视图点击了RelativeLayout的
- 10. 如何知道哪些JCheckBox的发出了一个ItemEvent
- 11. 如何知道我今天在psql中更新了哪些表?
- 12. 如何知道JUnit测试触及了哪些类
- 13. slickgrid:如何知道哪些行很脏
- 14. 如何知道哪些属性更新?
- 15. 我如何知道使用apt-get命名了哪些软件包?
- 16. Xcode - 如何知道哪些类使用或导入了某个类?
- 17. 如何知道哪些视图可以实现,我想什么监听
- 18. 如何知道要实施哪些SQL Server 2005索引建议?
- 19. 我如何知道哪些vagrantfile正在使用?
- 20. django如何知道哪个用户拥有哪些数据?
- 21. maven如何知道使用了哪种原型?
- 22. 如何知道在SQL查询中使用了哪个索引?
- 23. 不知道如何实现在Rails的一些问题
- 24. 我如何知道我正在使用哪个STL字符串实现?
- 25. 如何知道哪个用户输入了某些数据访问?
- 26. 如何知道我在一台iPhone上安装了哪些应用程序
- 27. 如何实现知道TransactionScope的类?
- 28. 如何知道哪些元素属于哪个会议laravel PHP
- 29. 未知JAXB实现柜面SOAP错误
- 30. “这个” jQuery中使用,但不知道如何实现它
非常感谢!这一切工作正常。 – basZero 2011-01-25 09:42:27