如何克服“package com.sun.xml.internal.xxx不存在”当编译与Gradle? [英] How to overcome "package com.sun.xml.internal.xxx does not exist" when compiling with Gradle?
问题描述
我想编译使用某些Java弃用的sun包的java代码,并且Gradle编译任务失败并出现此错误。
error:package com.sun.xml.internal.ws.developer does not exist
我正在使用Hotspot JDK和我可以在这里看到这个包(所以它实际上存在 - 在rt.jar文件中)
我也尝试将rt.jar本身添加到Gradle依赖项中:
编译文件('C:/ Program Files / Java / jdk1.7.0_05 / jre / lib / rt.jar')
但不起作用
这是我的gradle -v输出:
--------------------------------- ---------------------------
Gradle 1.2
------------- -----------------------------------------------
Gradle编译时间:2012年9月12日,Streda 10:46:02 UTC
Groovy:1.8.6
Ant:Apache Ant(TM)1.8.4版于2012年5月22日编译
Ivy:2.2.0
JVM:1.7.0_05(Oracle Corporation 23.1-b03)
OS:Windows 7 6.1 amd64
我也尝试将jaxws-rt.jar添加到classpath - 没有效果既不是
我真的很感谢任何帮助
$ b $ p感谢
Oracle的意图是这些类在编译时无法访问。
请参阅对此javac错误报告。
有关可能的解决方案,请参见使用内部sun类与javac 。 javac -XDignore.symbol.file
开关应该解决这个问题 - 但我是gradle newb,并没有看到如何将它提供给 gradle的JavaCompile 。我最好的猜测是:
pre $ apply plugin:'java'
compileJava.options.useAnt = true
compileJava .options.compilerArgs<< -XDignore.symbol.file
顺便说一句,ct.sym(在链接中提到)出现是一个jar文件,它列出所有可访问的类,作为类存根。
I want to compile java code that uses some Java's deprecated "sun" packages and Gradle compile task fails with this error
error: package com.sun.xml.internal.ws.developer does not exist
I am using Hotspot JDK and I can see this package there (so it actually exists - in rt.jar file) I also tried to add rt.jar itself into Gradle dependencies:
compile files( 'C:/Program Files/Java/jdk1.7.0_05/jre/lib/rt.jar')
but with no effect
here is my gradle -v output:
------------------------------------------------------------
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
I also tried to add jaxws-rt.jar to classpath - no effect neither
I would really appreciate any help
thanks
It's Oracle's intent that these classes be inaccessible at compile-time.
See the response to this javac bug report.
For a likely solution, see Using internal sun classes with javac . The javac -XDignore.symbol.file
switch should fix this - but I'm a gradle newb, and don't see how to feed this to gradle's JavaCompile. My best guess is
apply plugin: 'java'
compileJava.options.useAnt = true
compileJava.options.compilerArgs << "-XDignore.symbol.file"
Incidentally, ct.sym (referred to in the link) appears to be a jar-file that lists, as class stubs, all the accessible classes.
这篇关于如何克服“package com.sun.xml.internal.xxx不存在”当编译与Gradle?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!