Warum entfernen Sie .class bei der Ausführung auf der JVM?

8

Beispiel: Ich habe einen Quellcode, FooBar.java

%Vor%

das gibt mir FooBar.class .

Warum verwendet die JVM-Befehlszeilen-API FooBar anstelle von FooBar.class (unter UNIX FYI)?

    
Zong 25.11.2013, 20:53
quelle

2 Antworten

5

Das ist nur eine Konvention! Klassen werden mit ihrem vollständig qualifizierten Klassennamen geladen. Das ClassLoader kann dann Klassennamen zu Dateinamen zuordnen (z. B. durch Anhängen von '.class').

    
isnot2bad 25.11.2013, 20:56
quelle
4

Nur weil Sie der JVM den Namen der Klasse mitteilen müssen, die Sie ausführen möchten, nicht den tatsächlichen Dateinamen. Ein anderes Beispiel, wenn Ihre Klasse myPackage / FooBar.java wäre, würden Sie zu myPackage / FooBar.class kompilieren, obwohl Sie myPackage.FooBar als jvm-Argument setzen würden.

    
Michael Zilbermann 25.11.2013 20:58
quelle

Tags und Links