2015-12-21 68 views
1

我想編譯一個java文件,它使用包com.sun.xml.internal.messaging.saaj.soap.dynamic,使用ANT-1.9.3,但我收到錯誤包com.sun.xml.internal.messaging.saaj.soap.dynamic不存在

包com.sun.xml.internal.messaging.saaj.soap.dynamic不存在

我嘗試編譯兩個JDK7和JDK 8和得到同樣的錯誤。

我可以看到JDK的rt.jar內部存在該軟件包。我也正確設置了JAVA_HOME

有人可以幫我解決這個問題嗎?

+0

我不知道你使用的是什麼編譯系統,也許你可以提供更多的細節。在任何情況下,如果它是Gradle,請查看以下鏈接:https://discuss.gradle.org/t/problem-with-jar-that-c​​ontains-java-sources/2294 它可能有幫助。 – Bandreid

+0

請勿使用'com.sun。*'包。它們是內部API,不應直接由您自己的程序使用。他們可以在任何新的Java版本中改變或消失。 – Jesper

+0

「內部」一詞甚至包含在軟件包名稱中...... – Holger

回答

4

不幸的是,這種行爲可能是故意的,您的使用故意不受支持。如果你的代碼中使用的Java6下進行編譯,現在沒有下

Java7或Java8那麼你已經基本上降到犯規從一個版本到另一個,這些類可以被去除,或者他們可以從一個移動包到另一個

http://www.oracle.com/technetwork/java/faq-sun-packages-142232.html

http://bugs.java.com/bugdatabase/view_bug.do?bug_id=6778491見不能夠編譯一個類引用的一個可能的原因的技術說明「的com.sun。*」類,但其引發的相同的編譯器儘管事實上引用的類是ex,但你看到的錯誤在rt.jar中。同樣,對於甲骨文給予與之相關的錯誤報告的迴應;)

不幸的是,使用未公開的,不受支持的API通常會有這種'咬你後面'的效果。

+0

感謝您的信息:) – springbatcher