我正在尝试编译一个java文件,该文件使用包com.sun.xml.internal.messaging.saaj.soap.dynamic
,使用ANT-1.9.3,但我收到错误
包com.sun.xml.internal.messaging.saaj.soap.dynamic不存在
我尝试编译JDK7和JDK8,但得到了相同的错误。
我可以看到这个包存在于两个JDK的rt.jar
中。我也正确地设置了JAVA_HOME
。
有人能帮我解决这个问题吗?
不幸的是,这种行为可能是故意的,而且您的使用是故意不受支持的。如果你的代码过去是在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.*"类的类的可能原因的技术描述,但尽管引用的类存在于rt.jar中,但该类会引发与您看到的相同的编译器错误。此外,Oracle对与其相关的错误报告的响应类型;)
不幸的是,使用未记录的、不受支持的API通常会产生这种"后顾之忧"的效果。
请添加行,<compilerarg line="-XDignore.symbol.file"compiler="modern"/>for<build.xml中的javac>标记。这应该可以解决您的问题。它为我解决了。
您可以查看论坛链接以供参考http://www.icesoft.org/JForum/posts/list/19871.page#sthash.srrN9Ijk.dpbs