![]() |
|
|||||||
| Allgemeine Java-Themen Allgemeine Themen, die nicht in andere Fachforen und nicht zu den Java Basics passen |
|
|
|
Themen-Optionen | Thema durchsuchen | Ansicht |
| #1 (permalink) | |||
|
Nicht angemeldet
Fachbeiträge: n/a
|
ich hab hier ein kleines problem, bei dem ich nicht ganz mitkomme. das kompilieren einer klasse (siehe unten) mit dem befehl "javac Test.java" erzeugt 3 dateien:
Test.class Test$1.class Test$State.class die datei Test$1.class scheint auf dem ersten blick eine annonyme klasse zu sein, es ist aber mit ziemlicher sicherheit der switch block, denn wenn ich diesen entferne, wird jene datei nicht erzeugt. eclipse hingegen erzeugt sowohl in eigenen bin verzeichnis als auch beim jar export nur die beiden dateien "Test.class" und "Test$State.class". und genau DAS will ich vom javac compiler auch. warum also lagert javac den switch block in eine eigene class datei aus und wie kann ich das verhindern? was macht eclipse anders? Test.java
Geändert von SlaterB (10.08.2011 um 14:16 Uhr) Grund: Titel |
||
|
| #2 (permalink) | |
|
Stammbenutzer
Viertel Megabyte
Registriert seit: 24.01.2010
Fachbeiträge: 442
Blog-Einträge: 1
Abgegebene Danke: 3
Erhielt 70 Danke für 68 Beiträge
|
Schau doch mit dem Java-Decompiler cavaj in die *.class Dateien rein. Dann siehst du was es wirklich ist.
PS: Wahrscheinlich wäre es sinnvoll das Enum in ein statisches Enum zu ändern, nur eine Vermutung: dann verschwindet auch die mysteriöse $1-Klasse
|
|
|
|
| #3 (permalink) | |
|
Nicht angemeldet
Fachbeiträge: n/a
|
der java decompiler ermittelt für die datei "Test$1.class" nur einen leeren klassenrahmen, aus dem von der witch-anweisung aus referenziert wird:
Test$1.class Code:
class Test$1
{
}
Code:
...
switch (Test.1.$SwitchMap$Test$State[this.state.ordinal()]) {
...
|
|
| #4 (permalink) | |
|
Java-Forum Team
Moderator
Registriert seit: 13.11.2005
Fachbeiträge: 32.021
Abgegebene Danke: 0
Erhielt 2.623 Danke für 2.583 Beiträge
|
vielleicht stehts hier
Java enum and additional class files - Stack Overflow Suche '$SwitchMap java'
__________________
Hansa wird Meister. |
|
|
|
| #6 (permalink) | |||||||||||||||||||
|
Stammbenutzer
Megabyte
Registriert seit: 05.11.2007
Fachbeiträge: 1.844
Abgegebene Danke: 0
Erhielt 71 Danke für 68 Beiträge
|
Korrekt.
__________________
GitHub-Profil |
||||||||||||||||||
|
|
|
||||||||||||||||||
| #8 (permalink) | |
|
Stammbenutzer
Megabyte
Registriert seit: 05.11.2007
Fachbeiträge: 1.844
Abgegebene Danke: 0
Erhielt 71 Danke für 68 Beiträge
|
Das ist etwas allgemein ausgedrückt. Ein JDK braucht man nicht, ein JRE natürlich schon.
__________________
GitHub-Profil |
|
|
|
|
| Themen-Optionen | Thema durchsuchen |
| Ansicht | |
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Kein javac Compiler? | Chou | Java Basics - Anfänger-Themen | 1 | 02.03.2007 20:47 |
| Ant Problem: Unable to find a javac compiler; | AlBundy | Java Basics - Anfänger-Themen | 4 | 17.02.2005 12:40 |
| eclipse + antenna -> Unable to find a javac compiler | friedolin | IDEs und Tools | 1 | 12.02.2005 17:06 |
| Compiler (javac) funktioniert nicht... Bitte hilfe! | Nemesis1986 | Allgemeine Java-Themen | 3 | 26.02.2004 18:41 |
| Lesezeichen |
|
|