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