1

MacでSublime Textを使用して単純なテキスト エディター プログラムを作成しています。コマンド ラインからコンパイルすると、6 つの.classファイルが生成されます。

ターミナルで次のコマンドを使用してクラスをコンパイルしています。

javac Notepad.java

コンソールログは下の画像に示されています...

コンソール ログ

.class複数のファイルが生成される理由を知っている人はいますか? そして奇妙なことに、それらを削除してから使用java Notepadしても、まだ完全に動作します...なぜJavaはこれらを作成するのでしょうか? 私は愚かなことをしていると確信しています。

完全なコードを投稿するのではなく、ここに私のgitリポジトリを示します。

4

5 に答える 5

9

これらは内部クラスに付けられた名前です。何か間違ったことをしているわけでも、コードに問題があるわけでもありません。

于 2013-07-19T15:00:33.277 に答える
1

あなたのコード(74行目)には次のものがあります:

new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        new Notepad(true);
    }
}

これは匿名クラスであるため、別の.classファイルに表示されます。いくつかあると思うので、いくつかのファイルがあります。保存などのために、他にもいくつかあります。

@rcook へのコメントに従って、すべての機能が機能しているとは限りません。おそらく開くことはできますが、保存などはできない場合があります

この前の質問では、名前の形式について説明しています

于 2013-07-19T15:01:24.843 に答える
0

おそらくいくつかの内部クラスを作成しています。クラスをコンパイルすると、内部クラス ファイルは $InnerFile.class としてコンパイルされます。

于 2015-11-06T19:01:29.387 に答える