22

我想编译使用一些 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 添加到类路径 - 也没有效果

我真的很感激任何帮助

谢谢

4

1 回答 1

16

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

请参阅对此 javac 错误报告的响应。

有关可能的解决方案,请参阅将内部 sun 类与 javac 一起使用。开关应该可以解决这个javac -XDignore.symbol.file问题 - 但我是一个 gradle newb,并且不知道如何将它提供给gradle 的 JavaCompile。我最好的猜测是

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

顺便说一句,ct.sym(在链接中提到)似乎是一个 jar 文件,它作为类存根列出了所有可访问的类。

于 2012-10-25T12:43:30.203 回答