• ベストアンサー

java の *$1.class ファイルについて

最近、JDK を使っていて思ったのですが、javac でコンパイルしたときに 変わったクラスファイルがでてくるのですが・・・ たとえば、 MainFrame.class の他にMainFrame$1.class があったりします。 これがないと実行できません。 これはいったいなんなんでしょうか? どうか、教えてください。 お願いします。

  • Java
  • 回答数1
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
noname#30871
noname#30871
回答No.1

 MainFrame.javaの中でanonymous class(無名クラス/匿名クラス)を定義していますね?  Javaには「一つのクラス定義=一つのクラスファイル」という原則があります。  MainFrame.javaの中で複数のクラスを定義しているわけですが、anonymous classは「$」が付いたクラスファイルになります。

参考URL:
http://www.geocities.co.jp/SiliconValley-Oakland/4287/java49.html

関連するQ&A

  • javaのclassファイルが出来ません。

    javaを独学で勉強しようと思い本を購入いたしました。 インストールしていざjavac ファイル名.javaで実行してもclassファイルが できません。何度も試してみたのですが(涙) 上記の様に実行してみたら、下記のようなエラーがでます。 エラーの内容が分かりません。 よろしくアドバイスお願い申し上げます。 Exception in thread "main"java long.NoclassDefFoundError; com/sun/tools/javac/main

    • ベストアンサー
    • Java
  • javaでメインクラスが見つからないエラーが出てしまいます。

    javaでメインクラスが見つからないエラーが出てしまいます。 やさしい簡単なプログラム class test { public static void main(String[] args) { System.out.println("Viva!"); } } をjavacでクラスファイルを作った後に(ここまではできます)java test.class を行うと could not find the main class というエラーが出てしまいます。 教科書の通りにjdkをインストールして、パスを環境変数に通して、コマンドプロンプトでコンパイルしかしていません。 なにが悪いんでしょうか?

    • ベストアンサー
    • Java
  • javaのソースとclassファイルの単位について

    最近JAVAの勉強を始めました。 基礎的なことで恐縮ですが、JAVAのコンパイル単位を知りたいのですが。 一つの*.javaファイルについては、必ず一つのclassファイルができるんでしょうか? 一つの*.javaファイルから、複数個のclassファイルができたり、複数の*.javaファイルから 一つのclassファイルができたりはしないんでしょうか? まだ、一つの*.javaから一つのclassファイルを作ったことしかないので、 申し訳ないですが、どなたか教えてください。よろしくお願いします。

    • ベストアンサー
    • Java
  • javaのコンパイルについて

    JDK(Javaコンパイラ)をインストールしましたか? インストールしたら、環境変数PATHにjavacのあるパスを追加する必要があります。 といってもらいコンパイラをしようとしていますところです しかし環境変数pathに javacをついかする方法が解りません 詳しく教えていただけないでしょうか? 質問はfirstjava.javaをコンパイルしjavac firstjava.classでdirで表示したいのです よろしくお願い致します

  • javaの簡単なソースがコンパイル出来ません

    Javaを始めてみましたが、最も簡単なjavaのソースがどうしてもコンパイル出来ません。 どうしたらいいのか教えて下さい。 デスクトップの以下の Hello.java に対して、 public class Hello { public static void main(String[] args) { System.out.println("Hello,World"); } } 以下の3通りの方法でコンパイルを掛けてみると、 ‥デスクトップ>javac Hello.java javac:ファイルが見つかりません:Hello.java 使い方:javac <ptions> <source files> 使用可能なオプションのリストについては-helpを使用します >javac Hello.java.txt エラー:クラス名 ‘Hello.java.txt’が受け入れられるのは、注釈処理が明示的に要求された場合だけです エラー1個 >javac Hello エラー:クラス名 ‘Hello’が受け入れられるのは、注釈処理が明示的に要求された場合だけです エラー1個 でどの場合もコンパイルされません。 なお、javaのバージョンは “1.6.0_06”で、パスも C:\Program Files\Java\jdk1.6.0_06\bin\; と設定してあります。 どうしたらコンパイルが出来るのか、教えて下さい。

    • ベストアンサー
    • Java
  • LinuxにJAVAをインストしたのですが。

    Turbolinux6.5Serverにrootユーザーでrpm -Uvh jdk-1.3.1_01.i386.rpmを実行してJAVAをインストール後、確認のためexport PATH=/usr/jdk1.3.1/binを打ってパスが通ったことを確認し、でvi ~/.bash_profileでファイルを開きPATH="$PATH:/usr/java/jdk1.3.1/binを一行追加し、再起動後javac▲Hello.javaをコンパイルしようとしたのですが、bash: javac: command not found と出て実行できません。どうしたらよいのでしょうか。設定が足りないのでしょか? どなたか教えてください!

  • jadによるclassファイルの逆コンパイル後の比較

    classファイルを逆コンパイル(jadを使用)して内容の比較を試みたのですが、 片方はテキトウな変数名になっていて、   String s1 = "0"; 片方は実際にソースに書かれたと思われる変数名になっています。   String nflg = "0"; これは、javacのバージョンの違い、もしくは -targetオプションの指定の 違いによるものなのでしょうか。 実際は等価な内容であるのにも関わらず、テキスト比較ではうまく比較できなくて悩んでいます。このような場合に、うまく比較する方法はありますか? もし、コンパイルに使用されたjavacのバージョンの違いによるものならば、 片方だけはソースがあるので、バージョンを合わせ再コンパイル→逆コンパイル→比較 ということができそうだと思っていますが、classファイルから、コンパイルに 使用されたされたjavacのバージョンを取得することはできるのでしょうか?

  • classが作られない

    javaをはじめて2日目です。以下がコンパイルしたところ、エラーがでなかったのですが、classが作られていません。何回か試したのですが、参考書には、 >javac Sample2.java とし、もう一度ディレクトリ名が出れば、コンパイル完了とあるのですが、classが作れていないので、実行が出来ません。 すみませんが、教えてください。 //画面に文字を出力するコード class Sample1 { public static void main(String args[]) { System.out.println("ようこそjavaへ!"); System.out.println("javaをはじめましょう!"); } } ちなみに保存名は、Sample2.javaです。

    • ベストアンサー
    • Java
  • メインクラス○○.classが見つからなかったか…

    JAVA 初心者です。 簡単な Hello World プログラムを作って実行しましたが、 「エラー: メインクラスHello.classが見つからなかったかロードできませんでした」 と表示されエラーになっています。 >javacc -version javac 1.7.0_03 >java -version java version "1.7.0_03" Java(TM) SE Runtime Environment (build 1.7.0_03-b05) Java HotSpot(TM) 64-Bit Server VM (build 22.1-b02, mixed mode) >cd c:\Users\me\Documents\java_test >javac Hello.java としてコンパイルは通るのですが、 >java Hello.class とすると、上記エラーメッセージが表示されます。 システム環境変数には C:\glassfish3\jdk7\bin を追加しました。 初歩的なところでつまずいていると思うのですが、ご教示のほどよろしくお願いします。

    • ベストアンサー
    • Java
  • JAVA でコンパイラを作りたいと考えています。

    JAVAでJAVAコンパイラを作りたいと思っています。 コンパイラといっても、JDKにGUIをかぶせるようなものなんですが・・・ そこで、お聞きしたいのですが・・・(^^ゞ ボタンをクリックすると、javacコンパイラを実行するようにするには、どうすればいいのですか?javaで、他のプログラムファイルを実行する事はできないですよねぇ?(たとえば、.exeファイルを実行する事など) うぅ~、わからない。??????(-_-;) どうか、教えてください。お願いします。

専門家に質問してみよう