2016-07-13 263 views
0

com.sun.source.util.TaskListenerを実装するカスタム注釈とプロセッサを作成しました。 のGradleビルドの一部として実行したときに、注釈処理は、現在動作しますが、私はSTSに注釈処理を有効にすると、私は次のエラーを取得する:STS/Eclipseエラー:プラグインからコードを呼び出すときに問題が発生しました: "org.eclipse.core.resources"

Problems occurred when invoking code from plug-in: "org.eclipse.core.resources" 

java.lang.NoClassDefFoundError: com/sun/source/util/TaskListener 
at java.lang.ClassLoader.defineClass1(Native Method) 
at java.lang.ClassLoader.defineClass(ClassLoader.java:763) 
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 
at java.net.URLClassLoader.defineClass(URLClassLoader.java:467) 
at java.net.URLClassLoader.access$100(URLClassLoader.java:73) 
at java.net.URLClassLoader$1.run(URLClassLoader.java:368) 
at java.net.URLClassLoader$1.run(URLClassLoader.java:362) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(URLClassLoader.java:361) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
at org.eclipse.jdt.apt.core.internal.AnnotationProcessorFactoryLoader.loadJava6FactoryClasses(AnnotationProcessorFactoryLoader.java:638) 
at org.eclipse.jdt.apt.core.internal.AnnotationProcessorFactoryLoader.loadFactories(AnnotationProcessorFactoryLoader.java:577) 
at org.eclipse.jdt.apt.core.internal.AnnotationProcessorFactoryLoader.getJava6FactoriesAndAttributesForProject(AnnotationProcessorFactoryLoader.java:455) 
at org.eclipse.jdt.internal.apt.pluggable.core.dispatch.IdeAnnotationProcessorManager.processAnnotations(IdeAnnotationProcessorManager.java:131) 
at org.eclipse.jdt.internal.compiler.Compiler.processAnnotations(Compiler.java:968) 
at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:489) 
at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:397) 
at org.eclipse.jdt.internal.core.builder.BatchImageBuilder.compile(BatchImageBuilder.java:184) 
at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:334) 
at org.eclipse.jdt.internal.core.builder.BatchImageBuilder.build(BatchImageBuilder.java:63) 
at org.eclipse.jdt.internal.core.builder.JavaBuilder.buildAll(JavaBuilder.java:256) 
at org.eclipse.jdt.internal.core.builder.JavaBuilder.build(JavaBuilder.java:180) 
at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:735) 
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) 
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:206) 
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:246) 
at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:301) 
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) 
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:304) 
at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:360) 
at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:383) 
at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:144) 
at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:235) 
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55) 
Caused by: java.lang.ClassNotFoundException: com.sun.source.util.TaskListener 
at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
... 35 more 

私はこの問題を解決しようとするいくつかのことを試してみました:

  • 私は外部のjarファイルとしてのtools.jarを追加しようとした食
  • にJRE定義外部ジャーとしてのtools.jar追加インストールJDK
  • を指すように設置JREを変更しましたそのプロジェクト注釈処理がオンになっています。
  • は、私はまた、javacのプライベートAPIで定義されたクラスパス変数

答えて

0

com.sun.source.util.TaskListenerとしてのtools.jarを追加してみました。 Eclipseには独自のコンパイラがあります。 Eclipseの設定で、デフォルトのコンパイラをJavacに設定してみてください。

+0

確かに私は、インクリメンタル・エクリプス・コンパイラで私のアノテーション・プロセッサを使用できるようにしたいと考えていました。 –

+0

Checker Frameworkには同じ問題があるはずだと思います。おそらくEclipseプラグインがあるのでしょう。プロジェクトLombokはClassLoaderの魔法のようなEclipse固有の振る舞いを扱います(私は推測しますが、私は専門家ではありません)これを解決する別の方法について考えてみましょう。 )。 – Hervian

関連する問題