使用rt.jar里的internal类,在编译时可能出错

使用rt.jar里的internal类,在编译时可能出错

 

昨天遇到一个奇怪的编译问题。在Eclipse里,写了一个类A,A引入了一个rt.jar的类SOAPMessageFactory1_1Impl(包名为com.sun.xml.internal.messaging.saaj.soap). 在Eclipse里编译时,没有遇到问题,但当我在unix下,用ant脚本编译就总会报错,大概意思就是说这个类找不到。

 

足足查了一个多小时,终于找到问题的关键了。原来,并不是所有在rt.jar里的类都是完全公开给大家使用的。在rt.jar里,*.internal.*.java类都是用来给JDK自己用的,当我们用到rt.jar里的*.internal.*.java类时,就可能出现编译错误。没有深究为什么在eclipse下,*.internal.*.java类可以被使用,不过下面的链接对*.internal.*.java类的使用提供了解释。

 

http://bugs.sun.com/bugdatabase/view_bug.do;jsessionid=1711ee4eae3ff10565fc7a212018?bug_id=6778491

 

 

你可能感兴趣的:(java,eclipse,ant,SOAP,sun)