2011-08-09 6 views
1

最近私のシステムをFedora 15 32からFedora 15 64ビットに再フォーマットしました。私は、Javaの64ビット版をインストールし、新鮮なNetbeansのインスタンスを起動し、プロジェクトロンボクを使用して、私のプロジェクトをビルドしようとし、そしてこれを得た:tools.jarはクラスパスにはもうありませんか?

Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/tools/javac/parser/Scanner$Factory 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:791) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:634) 
    at lombok.delombok.DelombokApp$1.loadStreamAsClass(DelombokApp.java:102) 
    at lombok.delombok.DelombokApp$1.loadClass(DelombokApp.java:117) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356) 
    at lombok.delombok.Delombok.delombok(Delombok.java:358) 
    at lombok.delombok.Delombok.main(Delombok.java:190) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:601) 
    at lombok.delombok.DelombokApp.runApp(DelombokApp.java:55) 
    at lombok.core.Main.go(Main.java:127) 
    at lombok.core.Main.main(Main.java:41) 
Caused by: java.lang.ClassNotFoundException: com.sun.tools.javac.parser.Scanner$Factory 
    at java.lang.ClassLoader.findClass(ClassLoader.java:522) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:423) 
    at lombok.delombok.DelombokApp$1.loadClass(DelombokApp.java:118) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356) 
    ... 15 more 

私は前にこのエラーを得たことがありません。この特定のエラーは、lombokを実行していくつかのソースコードをdelombokしようとしているMaven execプラグインからのものです。古いシステムでは、これは問題なく、いつも働いていました。今はない。

困ったことは、私がJava 6とそれ以降のJava 7の両方を特別な操作をせずに使用していたにもかかわらず、古いシステム上で動作していたことです。また、Netbeansとそのファイルを頻繁に削除して、新しいバージョンにアップグレードするか、もう一度高速化したいと思っていました。したがって、いずれのプログラムでも変更される可能性のある特別な設定やチェックボックスはありません。それでも、私はそれを働かせるために何か特別なことをすることを覚えていません。

なぜこのエラーが発生しますか? tools.jarがクラスパスに自動的に追加されないのはなぜですか?それが正常な動作であれば、以前はどのように動作しましたか?

答えて

1

今日、私は最終的に問題が何であったかを考え出します。Java 6は、最初にインストールされたと私は基本的に私は、NetBeansとMaven上を走っていたのJava 7にまっすぐ

を跳びました私のホームフォルダのフォルダにあったJava 7。私はJava 6を実際にOSにインストールしていましたが、それは私の道でした。明らかにJava 6(少なくともLinux版)にはデフォルトでtools.jarが含まれているため、Lombokを正しく実行することができます。 Java 7はサポートしていません。

Maven Execプラグインが実行されたとき、私はMavenをJava 7で起動したにもかかわらず、実際にJava 6を使用しました。Java 6を7に置き換えると、このエラーが発生しました。

+0

Javaはもっとモジュラーになりました。ある程度、それはあなたの問題に関連する機能です:http://www.infoworld.com/d/developer-world/java-get-more-modular-jdk-7-upgrade-919 – Snicolas

+0

私の答えはそれほど脂肪ではない@TheLQ? – Snicolas

0

正しいバージョンへのJavaリンクはありますか?

java -version 

type java 

よろしく、 ステファン

+0

はい正しいバージョンです。 Netbeansは '/ usr/java/default /'にjavaを使用しています。これはjdk1.7.0にシンボリックリンクされています。 javaバイナリも正しいバージョンにシンボリックリンクされています。すべてが正しいです – TheLQ

+0

jdkではないjreにリンクされていますか? – Snicolas

+0

はい、javacは '/ usr/java/default/bin/javac'にあります。 JREはフォルダ – TheLQ

関連する問題