簡體   English   中英

包com.sun.xml.internal.bind.v2.model.annotation不存在

[英]package com.sun.xml.internal.bind.v2.model.annotation does not exist

我正在嘗試使用jaxb序列化異常的解決方案。 http://forums.java.net/jive/thread.jspa?messageID=256122

我需要為該解決方案實現的類需要引用以下com.sun類。

import com.sun.xml.internal.bind.v2.model.annotation.AbstractInlineAnnotationReaderImpl;
import com.sun.xml.internal.bind.v2.model.annotation.Locatable;
import com.sun.xml.internal.bind.v2.model.annotation.RuntimeAnnotationReader;
import com.sun.xml.internal.bind.v2.model.annotation.RuntimeInlineAnnotationReader;

當我在Eclipse中編譯並運行我的代碼時,它工作正常。 但是當我使用Maven編譯代碼時,它無法抱怨com.sun包,例如“package com.sun.xml.internal.bind.v2.model.annotation不存在”。

eclipse和maven都使用JDK 1.6,所以我不明白為什么會這樣。 JDK中不是那些com.sun類嗎?

編輯:我最終決定它是不可能的。 我只是創建了一個新的bean並復制了我需要的信息並使用了它。

如果一個類在com.sun。*包中,它只是意味着它是由Sun開發的,而不是它是JDK的一部分。

JDK中的Sun類是前綴sun。*並且不是公共支持的接口的一部分,因此應謹慎使用。 來自太陽常見問題

Sun在Java 2 SDK標准版中包含的類屬於包組java。 ,javax。 ,org。*和太陽。 除了太陽以外的所有。 軟件包是Java平台的標准部分,將來會得到支持。 一般來說,包如太陽。 ,在Java平台之外,可以在OS平台(Solaris,Windows,Linux,Macintosh等)上有所不同,並且可以隨時更改,而無需通知SDK版本(1.2,1.2.1,1.2.3等) )。 包含直接調用太陽的程序。 包不是100%純Java。 換一種說法:

java。 ,javax。 Java 2平台標准版API規范中記錄的org。*包構成了官方支持的公共接口。

如果Java程序直接只調用這些包中的API,它將在所有兼容Java的平台上運行,而不管底層的OS平台如何。

sun。*包不是受支持的公共界面的一部分。

直接調用sun。*包的Java程序不能保證在所有兼容Java的平台上運行。 實際上,即使在同一平台上的未來版本中,也不能保證這樣的程序能夠工作。

話雖如此,您列出的那些類在以下工件中的JBoss存儲庫中可用:

<dependency>
  <groupId>javax.xml</groupId>
  <artifactId>jaxb-impl</artifactId>
  <version>2.1</version>
</dependency>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM