2012-03-21 3 views
0

私はクラスをコンパイルした場合Javaコンパイラはいくつのファイルを作成しますか?

class hussi 
{ 
    public static void main(String args[]) 
    { 
    System.out.println("hello java"); 
    } 
} 

は私がhussi.classファイル以外のファイルを持っているのだろうか?
javacは.classファイル以外のファイルを作成しますか?

+2

でコンパイルさ

/** * Javadoc for a package * * with an annotation. */ @Deprecated package mypackage; 

? – beny23

+1

'javac hussi.java'、という1つのクラスファイルを参照します。 – AusCBloke

+0

Java命名規則を学び、それらに固執してください – kleopatra

答えて

1

がさえパッケージ:良い答えがあります:あなたは、外側のクラスのクラスファイルと一緒に内部クラスを、持っている場合は、内部クラスのクラスファイルも


編集生成されます-info.javaはクラスを生成します。あなたがそれをしようとするとどうなり

$ javac package-info.java 
$ ls -l 
total 8 
-rw-rw-r-- 1 peter peter 180 2012-03-21 12:08 package-info.class 
-rw-rw-r-- 1 peter peter 87 2012-03-21 12:08 package-info.java 

$ javap -c -v -classpath .. mypackage.package-info 
Classfile /d/peter/untitled/src/main/java/mypackage/package-info.class 
    Last modified 21-Mar-2012; size 180 bytes 
    MD5 checksum f152dc2e8a45929ef297f6ac05a4067e 
    Compiled from "package-info.java" 
interface mypackage.package-info 
    SourceFile: "package-info.java" 
    RuntimeVisibleAnnotations: 
    0: #6() 
    minor version: 0 
    major version: 51 
    flags: ACC_INTERFACE, ACC_ABSTRACT, ACC_SYNTHETIC 
Constant pool: 
    #1 = Class    #7    // "mypackage/package-info" 
    #2 = Class    #8    // java/lang/Object 
    #3 = Utf8    SourceFile 
    #4 = Utf8    package-info.java 
    #5 = Utf8    RuntimeVisibleAnnotations 
    #6 = Utf8    Ljava/lang/Deprecated; 
    #7 = Utf8    mypackage/package-info 
    #8 = Utf8    java/lang/Object 
{ 
} 
1

Javaコンパイラでは、クラスごとに1つのファイルが生成されます(内部クラス用(匿名または未使用))。それらは常に.classファイルになります。

1

クラスごとに1つの.classファイルが作成されます。内部クラスがある場合、.javaファイルごとに複数の.classファイルが作成されることがあります。

1

Javaコンパイラは.classファイルである1つのファイルのみを作成します。

しかし、これをコンパイルするには、Javaファイルに1つのパブリッククラスがなければなりません。それ以外の場合はエラーが発生し、ファイル名はパブリッククラス名と同じでなければなりません。

Javaファイルに複数のクラスがある場合、より多くのクラスファイルが作成されます。

5

Javaコンパイラは、クラスごとに.classを作成します。 Javaファイルには少なくとも1つのクラスが含まれている可能性があります。これには、トップレベルクラスまたはインナークラスのいずれかを含めることができます。また、匿名の内部クラスを含むこともできます。コンパイラは、そのようなクラスごとに別々のファイルを作成します。

関連する問題