如何克服;包com.sun.xml.internal.xxx不存在”;当用Gradle编译时?

如何克服;包com.sun.xml.internal.xxx不存在”;当用Gradle编译时?,gradle,Gradle,我想编译使用一些java不推荐的“sun”软件包的java代码,而Gradle编译任务因此错误而失败 error: package com.sun.xml.internal.ws.developer does not exist 我正在使用Hotspot JDK,我可以在那里看到这个包(所以它实际上存在于rt.jar文件中) 我还尝试将rt.jar本身添加到Gradle依赖项中: compile files( 'C:/Program Files/Java/jdk1.7.0_05/jre/lib

我想编译使用一些java不推荐的“sun”软件包的java代码,而Gradle编译任务因此错误而失败

error: package com.sun.xml.internal.ws.developer does not exist
我正在使用Hotspot JDK,我可以在那里看到这个包(所以它实际上存在于rt.jar文件中) 我还尝试将rt.jar本身添加到Gradle依赖项中:

compile files( 'C:/Program Files/Java/jdk1.7.0_05/jre/lib/rt.jar')
但没有效果

这是我的gradle-v输出:

------------------------------------------------------------
Gradle 1.2
------------------------------------------------------------

Gradle build time: Streda, 2012, september 12 10:46:02 UTC
Groovy: 1.8.6
Ant: Apache Ant(TM) version 1.8.4 compiled on May 22 2012
Ivy: 2.2.0
JVM: 1.7.0_05 (Oracle Corporation 23.1-b03)
OS: Windows 7 6.1 amd64
我还尝试将jaxws-rt.jar添加到类路径中-也没有效果

我真的很感激任何帮助


感谢

Oracle的意图是在编译时无法访问这些类

请参阅对的答复

有关可能的解决方案,请参阅。
javac-XDignore.symbol.file开关应该可以解决这个问题,但我是一个新手,不知道如何将这个问题反馈给用户。我最好的猜测是

  apply plugin: 'java' 
  compileJava.options.useAnt = true 
  compileJava.options.compilerArgs << "-XDignore.symbol.file" 
apply插件:“java”
compileJava.options.useAnt=true

compileJava.options.compilerArgs这些包可能不再是AMD64上JDK 7的一部分。不,当我解压缩rt.jar时,我可以将它放在那里,然后它应该在类路径中。不,它在类路径中-编译文件('C:/Program files/Java/jdk1.7.005/jre/lib/rt.jar')Gradle没有为此使用类加载器,也没有排除任何内容。它只是使用所有可用信息(例如编译类路径)调用Java编译器API。我相信是Java编译器(API)不允许使用某些内部JDK包。下面是一个报告的案例,其中显式添加rt.jar解决了问题:Peter:我在一个新项目上尝试了它(以确保我没有重复使用我的旧错误),但它仍然不起作用:(同样,当我在Idea中构建项目时,它works@PeterNiederwieser-感谢您为我们指路-请参阅更新的答案和详细信息,以及(希望如此)部分更好的解决方案。我在论坛线程上交叉发布,希望它有用。在Gradle的最新版本中,useAnt已被删除。“
options.fork=true;options.forkOptions.executable='javac'
”对我有效。请参阅: