"bad class file" Problem

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Moin

Ich habe insgesamt 5 Klassen erstellt.
Eine ist davon ist die main() funktion.
Die anderen 4 hab ich als packade in nem unterverzeichnis verstaut...
Wenn ich jetzt aber die hauptklasse convertiere kommt folgende Fehlermeldung:

cannot access firma.CLehrling("Also die Klasse") bad class file: C:\jdk1.4\MeineProgramme\CMitarbeiterBeispiel4\firma\CLehrling.class(Der Pfad der Klasse)

Das komische ist, dass ich ja 4 verschiedene Klassen haben die alle im gleichen Verzeichnis sind. Jedoch kommt nur die eine Fehlermeldung...

Hoffendlich kann mir jemand helfen.

mfG Jan

edit deathbyaclown: Titel angepasst... bitte vernünftige Titel wählen !!
 

L-ectron-X

Gesperrter Benutzer
Ich glaube der Fehler kommt im Zusammenhang mit Vererbung.
Kann es sein, dass du die Basisklasse nochmal verändert hast?
 
G

Guest

Gast
Nein, nicht dass ich wüsste..^^

Ich poste mal ein Stück vom Code. Vielleicht findet ihr einen Fehler darin.

Code:
public class CMitarbeiter {
	String name;
	String vorname;
	String stelle;
	int    gehalt;

	public CMitarbeiter(String name, String vorname,String stelle, int gehalt) {
		this.name = name;
		this.vorname = vorname;
		this.gehalt = gehalt;
		this.stelle = stelle;
	}

	public void datenAusgeben() {
		System.out.println("\n");
		System.out.println("---------"+stelle+"--------");
		System.out.println("\nName    : "+name);
		System.out.println("Vorname : "+vorname);
		System.out.println("Gehalt  : "+gehalt +" Euro");
	}

	public void gehaltErhoehen(int erhoehung) {
		gehalt += erhoehung;
	}
}

class CLehrling extends CMitarbeiter {
	int pruefungen;

	public CLehrling(String name, String vorname, String stelle, int gehalt, int pruefungen) {
		super(name, vorname, stelle, gehalt);
		this.pruefungen = pruefungen;
	}

	public int pruefungSchreiben(int anzahl) {
		int i = 100;
		pruefungen += anzahl;

		if(pruefungen >= 10) {
			System.out.println("\n"+name+" "+vorname+" hat genug Pruefungen abgelegt fuer eine Lohnerhoehung von "+i+" Euro!!");
			gehaltErhoehen(i);
			pruefungen = 0;
			return pruefungen;
		}
		else {
			System.out.println("\n"+name+" "+vorname+" hat "+anzahl+" neue Pruefungen bestanden. Herzlichen Glueckwunsch!!");
			return pruefungen;
		}
	}
}

und hier nochmal die komplette Fehlermeldung:

CMitarbeiterBeispiel4.java:6: cannot access firma.CLehrling
bad class file: C:\jdk1.4\MeineProgramme\classes\firma\CLehrling.class
class file contains wrong class: CLehrling
Please remove or make sure it appears in the correct subdirectory of the classpa
th.
CLehrling[] Lehrling = new CLehrling[1];
^
1 error

und die Main-Klasse sieht folgendermasse aus:

Code:
import firma.*;

class CMitarbeiterBeispiel4 {
	public static void main(String[] args) {

		CLehrling[] Lehrling  = new CLehrling[1];
		CAngestellter[] Angestellte = new CAngestellter[2];
		CChef[] Chef = new CChef[1];

		Lehrling[0] = new CLehrling("Moser","Andreas","Lehrling",3500, 5);
		Angestellte[0] = new CAngestellter("Eppenberger","Eppi","Angestellter",5000, 2);
		Angestellte[1] = new CAngestellter("Koch","Christof","Angestellter",6500, 3);
		Chef[0] = new CChef("van den Broek","Jan","Chef",1000000);

		Lehrling[0].datenAusgeben();
		Angestellte[0].datenAusgeben();
		Angestellte[1].datenAusgeben();
		Chef[0].datenAusgeben();

		Lehrling[0].pruefungSchreiben(5);
		Angestellte[1].befoerdern();

		System.out.println("\n"+"----------------------------------------------------------------");

		Lehrling[0].datenAusgeben();
		Angestellte[0].datenAusgeben();
		Angestellte[1].datenAusgeben();
		Chef[0].datenAusgeben();

	}
}

Vielleicht versteht ihr damit mehr anzufangen als ich.^^

mfG Jan
 

krey

Aktives Mitglied
Wo ist denn die Klasse "CLehrling"? Wenn die nicht im Verzeichnis ist wo du das ganze Projekt übersetzt dann geht das ganze auch nicht ;)

Also Klasse CLehrling im Pfad erstellen, oder die Klasse in den Classpath aufnehmen wie die Fehlermeldung schon sagt.
 
G

Guest

Gast
classpath hab ich auf: C:\jdk1.4\MeineProgramme\classes\

und dort drin hats den ordner firma mit den 4 Klassen.
Wenn ich jetzt import firma.*
sollte das doch wegen dem classpath funktionieren...
Oder verstehe ich das falsch??
 

Murray

Top Contributor
Es sieht so aus, als passt die Verzeichnis- nicht zur Package-Struktur: die VM sucht im Verzeichnis C:\jdk1.4\MeineProgramme\classes nach Class-Files, wobei Unterverzeichnisse für Package-Namen stehen. Nun wird zur Laufzeit C:\jdk1.4\MeineProgramme\classes\firma\CLehrling.class gefunden, was nach besagter Konvention die Klasse CLehrling aus dem Package firma sein müsste. Im Classfile findet die VM aber die Information, dass es sich um die Klasse CLehrling ohne Package handelt; daher die Fehlermeldung: erwartet war CLehrling, gefunden wurde firma.CLehrling.

Vermutlich hast Du nicht wirklich ein Package angelegt (dazu müsste im Source-File CLehrling.java auch ganz am Anfang "package firma;" stehen), sondern das Class-File manuell in ein Unterverzeichnis kopiert.
 
G

Guest

Gast
Jop, das war glaub ich der Fehler :roll:

Aber es geht noch weiter. Hab es jetzt richtig gemacht, und jetzt kommt ne Fehlermeldung,
dass die Klassen public sein müssen. Eigendlich klar. Also überall public vorndran geschrieben..

Jetzt kommt aber:

classes\firma\CMitarbeiter.java:29: class CLehrling is public, should be declare
d in a file named CLehrling.java
public class CLehrling extends CMitarbeiter {
^
classes\firma\CMitarbeiter.java:54: class CAngestellter is public, should be dec
lared in a file named CAngestellter.java
public class CAngestellter extends CMitarbeiter {
^
classes\firma\CMitarbeiter.java:79: class CChef is public, should be declared in
a file named CChef.java
public class CChef extends CMitarbeiter {
^
3 errors

Sollte das nicht auch so funktionieren??
 

Murray

Top Contributor
Wie die Fehlermeldung sagt: eine "public" Klasse muss in einer Datei definiert sein, die den Namen <Klassename (ohne package-Anteil) +".java"> trägt. Daraus folgt auch, dass man nicht mehrere Klassen in einer Datei definieren kann. Also: teile die Sourcen in verschiedene Dateien auf.
 
G

Guest

Gast
hmm...
Hab jetzt alle einzeln.
Muss jetzt also aber auch bei allnen Klassen die von CMitarbeiter was erben,
die Klasse CMitarbeiter importieren oder?
Habs jetzt mal so gemacht, und jetzt kommt wieder der bad class fehler ???:L

Ich weiss nicht mehr weiter...^^
 

Murray

Top Contributor
Anonymous hat gesagt.:
Muss jetzt also aber auch bei allnen Klassen die von CMitarbeiter was erben,
die Klasse CMitarbeiter importieren oder?
Das ist nur dann notwendig, wenn die Klassen nicht im selben Package sind.

Vorschlag: lass das Package erst man weg (keine "package firma"-Statements in den Sourcen, und auf keinen Fall die Class-File manuell in irgendwelche Verzeichnisse kopieren).

Nach dem Übersetzen sollten alle Class-Files direkt im classes-Verzeichnis liegen.

Wenn das klappt, dann füge in allen Source-Files das "package firma;" ein und übersetze alles neu; die Class-Files müssen dann in classes\firma liegen.
 
G

Guest

Gast
aber wenn ich alles in einem Ordner habe.
Jede klasse in nem eigenen dokument und die dann compillieren will
kommen da fehler, dass Klassen nicht gefunden werden....
 

Murray

Top Contributor
Vorschlag:
1. Lege ein Verzeichnis C:\jdk1.4\MeineProgramme\sources an
2. Spiele alle Source-Files (in der vereinfachten Variante ohne Package) in dieses Verzeichnis
3. Alles übersetzen mit javac -d C:\jdk1.4\MeineProgramme\classes C:\jdk1.4\MeineProgramme\sources\*.java

Das sollte gehen.

Dann:
1. Lege ein Verzeichnis C:\jdk1.4\MeineProgramme\sources\firma an.
2. move C:\jdk1.4\MeineProgramme\sources\*. java C:\jdk1.4\MeineProgramme\sources\firma
3. Ergänze in den Soure-Files das "package firma;"
4. Lösche die alten Class-Files: del C:\jdk1.4\MeineProgramme\classes\*.class
5. Alles übersetzen mit javac -d C:\jdk1.4\MeineProgramme\classes C:\jdk1.4\MeineProgramme\sources\firma\*.java
 
G

Guest

Gast
JAA!!
Endlich!
Oh man war das ne Zangengeburt.. :)

Danke viel mals für die grosse Hilfe! :applaus:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
dapzoo Class File Version zu niedrig? Ausführen über Eingabeaufforderung nicht möglich Java Basics - Anfänger-Themen 14
B .class-File mit Reflection auslesen Java Basics - Anfänger-Themen 8
S Class File Editor gibt beim Start der Programms die Fehlermeldung Source not found aus Java Basics - Anfänger-Themen 1
M Java Class File lässt sich nicht ausführen Java Basics - Anfänger-Themen 3
H Bad class file in *.jar Java Basics - Anfänger-Themen 19
E Executable jar-file findet class nicht Java Basics - Anfänger-Themen 12
N Jar-File soll externe class-Datei benutzen Java Basics - Anfänger-Themen 8
A Compile the Source File into a .class File Java Basics - Anfänger-Themen 3
G Class File "lesen" Java Basics - Anfänger-Themen 4
M class-File anschauen möglich? Java Basics - Anfänger-Themen 8
B bad class file Java Basics - Anfänger-Themen 2
N Class-Objekt aus File-Objekt erzeugen? Java Basics - Anfänger-Themen 14
S methode in class file ansprechen? Java Basics - Anfänger-Themen 6
T IntelliJ / SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". Java Basics - Anfänger-Themen 4
wolei Java generic interface in a generic class Java Basics - Anfänger-Themen 6
Say Class scope und Instance scope und Getter nur selbstgeschrieben Methoden Java Basics - Anfänger-Themen 11
Say abstract class und Objekt erzeugen - Dringend Hilfe Java Basics - Anfänger-Themen 10
C Was tun wenn .class erwartet wird ? Java Basics - Anfänger-Themen 6
M "Class<T> clazz" im Constructor - auch für int möglich? Java Basics - Anfänger-Themen 7
M error: '.class' expected switch(char) Java Basics - Anfänger-Themen 32
123456789sssssaaaa Java Wrapper Class Java Basics - Anfänger-Themen 13
FHEFHJHFJH error: class names, 'summe_bsp', are only accepted if annotation processing is explicitly requested Java Basics - Anfänger-Themen 3
N Variabel in eine class mit "extends JLabel" übertragen Java Basics - Anfänger-Themen 2
J Methode als Class anlegen Java Basics - Anfänger-Themen 7
A Fehler beim Ausführen einer class Datei Java Basics - Anfänger-Themen 6
G Could not initialize class “NoClassDefFoundError" Java Basics - Anfänger-Themen 2
Mr_Kleeblatt Operatoren if (arri[i] != "test.java"&& arri[i] != "test.class") Java Basics - Anfänger-Themen 3
S Generics-Problem: Class, Class<?>, Class<Object> Java Basics - Anfänger-Themen 4
J Klassen .class Datei öffnen Java Basics - Anfänger-Themen 31
C "HelloWorld" - Dateien erstellt, aber ist es eine class-Datei? Java Basics - Anfänger-Themen 2
O Verständniss Problem bei abstract class Java Basics - Anfänger-Themen 7
H .class Datei wird nicht ausgeführt Java Basics - Anfänger-Themen 2
H .jar unterschied .class Java Basics - Anfänger-Themen 3
J class version 52 und 56 Java Basics - Anfänger-Themen 6
L Fehler bei der AUsführung der .class Datei Java Basics - Anfänger-Themen 23
A Class not found - Jar liegt am classpath Java Basics - Anfänger-Themen 2
A Wie erkennt die JVM welche class verwendet werden muss? Java Basics - Anfänger-Themen 3
J Methoden Methoden einer public class AutoCompleteTextField verwenden Java Basics - Anfänger-Themen 14
R HTTP-Links in Java Class finden Java Basics - Anfänger-Themen 3
D jsoup get class name mit leerzeichen Java Basics - Anfänger-Themen 7
D doc.seect jsouo bestimmtes class element finden Java Basics - Anfänger-Themen 1
B Objekte zählen/ Vererbung/ Kopplung/ Interface/ Abstract Class Java Basics - Anfänger-Themen 5
N Fehlende .class Datei Java Basics - Anfänger-Themen 4
S Daten aus eigenständiger .class-Datei abrufen Java Basics - Anfänger-Themen 1
C Was macht `public class ClassName<T extends Comparable<T>>`? Java Basics - Anfänger-Themen 14
W Externe class in Eclipse importieren Java Basics - Anfänger-Themen 0
X Variablen Problem bei Aufteilung in verschiedene Class-Files Java Basics - Anfänger-Themen 4
Javafan01 Dateiname und Public class Java Basics - Anfänger-Themen 4
S Klassen Class mit Funktionen importieren Java Basics - Anfänger-Themen 1
L jar, class, java und wieder zurück Java Basics - Anfänger-Themen 8
T class Datei auslesen Java Java Basics - Anfänger-Themen 5
B Classpath Class lässt sich nicht öffnen Java Basics - Anfänger-Themen 3
J Compiler-Fehler Fehler bei Vektor (E extends Object declared in class Vector) Java Basics - Anfänger-Themen 9
temi Verständnisproblem Class.forName() Java Basics - Anfänger-Themen 3
S setText aus anderer class heraus Java Basics - Anfänger-Themen 6
L Classpath Zwei Bibliotheken enthalten gleiche .class Datei Java Basics - Anfänger-Themen 6
F Taschenrechner "Error loading class..." Java Basics - Anfänger-Themen 5
D Interface Amazon Skill Kit, Interface but method in other class? Java Basics - Anfänger-Themen 3
J Compiler-Fehler class interface or enum expected Java Basics - Anfänger-Themen 1
wilmaed protected class Java Basics - Anfänger-Themen 0
C Erste Schritte Fehler beim *.class Aufruf über cmd.exe Java Basics - Anfänger-Themen 9
N class in class Java Basics - Anfänger-Themen 13
B Linux - Error: Could not find or load main class application.Main Java Basics - Anfänger-Themen 28
V Was bewirkt das Schlüsselwort extends in Verbindung mit class bzw. public class ? Java Basics - Anfänger-Themen 2
Azazel Ist die abstract class das selbe wie ein interface ? Java Basics - Anfänger-Themen 33
lBlKha0s Fehlermeldung : class interface or enum expected Java Basics - Anfänger-Themen 9
P could not find main class obwohl da Java Basics - Anfänger-Themen 17
UnityFriday method getPrevious in class List<ContentType> cannot be applied to given types Java Basics - Anfänger-Themen 29
T error: class, interface, or enum expected Java Basics - Anfänger-Themen 5
D Compiler-Fehler error: .class expected Java Basics - Anfänger-Themen 2
S Dataflow von Start bis die SystemProperties class Java Basics - Anfänger-Themen 1
Detox Class Datei erzeugen nicht möglich über cmd Java Basics - Anfänger-Themen 1
M Scanner class Java Basics - Anfänger-Themen 6
A attach source: Zusammenhang zwischen JAR und .class/.java Dateien? Java Basics - Anfänger-Themen 2
L Compiler-Fehler error: class, interface or enum expected Java Basics - Anfänger-Themen 2
C Klassen Class Files nachladen (mehrer .jar Dateien) Java Basics - Anfänger-Themen 2
P Compiler-Fehler Could not load or find main class fehler Java Basics - Anfänger-Themen 15
J Gestaltung der GUI.class Java Basics - Anfänger-Themen 1
P Compiler-Fehler could not find or load main class Java Basics - Anfänger-Themen 5
Z Gleiches Verzeichnis für class und java unter Windows Muss? Java Basics - Anfänger-Themen 11
S Class Dateien decompilieren Java Basics - Anfänger-Themen 4
D neue public static class variablen in array speichern? Java Basics - Anfänger-Themen 6
T Wie vergleiche ich die Jahre aus der while Schleife die in ( public class) fuer cbx geschrieben sind Java Basics - Anfänger-Themen 5
S Vererbung Fehlermeldung: the hierarchy of the type "class name" is inconsistent Java Basics - Anfänger-Themen 10
J Erste Schritte .class datei in meine form inkludieren Java Basics - Anfänger-Themen 3
O Objekt weitergeben Meth Class NullPointerException Java Basics - Anfänger-Themen 2
M Class Datein aus einen Unterordner verwenden Java Basics - Anfänger-Themen 2
C class in main aufrufen (SWT Oberfläche) Java Basics - Anfänger-Themen 5
P Compiler-Fehler .java Dateien kompilieren und .class Dateien zur .jar Java Basics - Anfänger-Themen 4
D error: Class names, >>>HILFE, anfänger<<< Java Basics - Anfänger-Themen 4
M Class nach Namensänderung nicht mehr vorhanden Java Basics - Anfänger-Themen 6
P .class 2 .exe ? Java Basics - Anfänger-Themen 5
N Compiler-Fehler HundTestlauf class Fehler Java Basics - Anfänger-Themen 4
3 OOP static class in einer Klasse Java Basics - Anfänger-Themen 6
H Umgebungsvariable In DOS-Box läuft die fehlerfreie Class-Datei nicht. Java Basics - Anfänger-Themen 5
J Compiler-Fehler bootstrap class path not set in conjunction with -source 1.6 Java Basics - Anfänger-Themen 2
J Interface compatible to a class Java Basics - Anfänger-Themen 7
Phil42 "Local variable i is accessed from within inner class" Java Basics - Anfänger-Themen 3
F .class expected Java Basics - Anfänger-Themen 3
S Erste Schritte Ausführen einer Class Datei Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben