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バグレポートへの応答を参照してください。

考えられる解決策については、javacでの内部sunクラスの使用を参照してください。スイッチでこれjavac -XDignore.symbol.fileを修正する必要がありますが、私はgradleの初心者であり、これをgradleのJavaCompileにフィードする方法がわかりません。私の最善の推測は

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

ちなみに、ct.sym(リンクで参照)は、アクセス可能なすべてのクラスをクラススタブとしてリストするjarファイルのように見えます。

于 2012-10-25T12:43:30.203 に答える