如何克服“package com.sun.xml.internal.xxx不存在”当编译与Gradle? [英] How to overcome "package com.sun.xml.internal.xxx does not exist" when compiling with Gradle?

查看:639
本文介绍了如何克服“package com.sun.xml.internal.xxx不存在”当编译与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屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆