Compiler-Fehler Fehler im Code

clou

Mitglied
Hallo,

aus einem Einsteigerbuch sollte ich zwei Codes abschreiben, was ich auch gemacht habe. Die eine Datei wird kompiliert (StrassenFzg), die andere Datei nicht (Auto). Da ich mehrere Stunden nach einem Fehler meinerseits gesucht habe, aber keinen finden kann, vermute ich einen Fehler im Buch. Kann mir jemand den Fehler zeigen, bitte, bitte? Beide Dateien liegen bei mir im selben Verzeichnis, wie im Buch angegeben.

Vielen Dank im Voraus.

LG
Clou

Hier die beiden Codes. Die Dateien sind auch im Anhang.

DATEI 1, StrassenFzG:
=================

Java:
package fahrzeug;

abstract class StrassenFzg {
	protected String bez;
	protected short geschw;
	protected boolean verliehen;
	
	abstract boolean eingeben();
	
	abstract boolean anzeigen();
	
	public boolean verleihen() {
		if (verliehen)
			return false;
		else {
			verliehen = true;
			return true;
		}
	}
}


DATEI 2, Auto:
===========

Java:
package fahrzeug;

import java.util.Scanner;

public class Auto extends StrassenFzg {
	public short plaetze;

	public boolean eingeben() {
		Scanner eingabe = new Scanner(System.in);

		try {
			System.out.print("Bezeichnung: ");
			bez = eingabe.nextLine();
			System.out.print("Sitzplaetze: ");
			plaetze = eingabe.nextShort();
			System.out.print("Geschwindigkeit: ");
			geschw = eingabe.nextShort();
			return true;
		}	catch (Exception e) {
			System.out.println(e);
			return false;
		}
	}

	public boolean anzeigen() {
		System.out.println("\nDas Auto ist ein " +	bez);
		System.out.println("Es hat " + plaetze +	" Sitze.");
		System.out.println("Der Top-Speed: " +	geschw);

		if (verliehen) {
			System.out.println("Es ist verliehen.");
		} else {
			System.out.println("Es ist nicht " +	"verliehen.");
		}
		return true;
	}
}
 

Anhänge

  • StrassenFzg.java
    329 Bytes · Aufrufe: 3
  • Auto.java
    873 Bytes · Aufrufe: 4

sn1x

Mitglied
Der Code ist okay und funktioniert.

Kann es sein, dass du mit einer IDE (Eclipse?) entwickelst und dich im default-package befindest?
Sonst poste mal den Compilerfehler..
 

clou

Mitglied
Hallo zusammen,

vielen Dank für eure Hilfe.

Ich arbeite nicht mit Eclipse sondern schreibe den Code in TextPad, von wo ich auch kompiliere und die Programme ausführe. Dazu muss ich noch sagen, dass sich in dem Verzeichnis "MeineKlassen" nur das Unterverzeichnis "fahrzeug" befindet. In dem Verzeichnis "fahrzeug" befinden sich ausschließlich die beiden java-Dateien "StrassenFzg" und "Auto", falls das wichtig sein sollte.

Hier die Fehlermeldung:

Code:
C:\Users\Clou\Office\Java\MeineKlassen\fahrzeug\Auto.java:5: cannot find symbol
symbol: class StrassenFzg
public class Auto extends StrassenFzg {
                          ^
C:\Users\Clou\Office\Java\MeineKlassen\fahrzeug\Auto.java:13: cannot find symbol
symbol  : variable bez
location: class fahrzeug.Auto
			bez = eingabe.nextLine();
			^
C:\Users\Clou\Office\Java\MeineKlassen\fahrzeug\Auto.java:17: cannot find symbol
symbol  : variable geschw
location: class fahrzeug.Auto
			geschw = eingabe.nextShort();
			^
C:\Users\Clou\Office\Java\MeineKlassen\fahrzeug\Auto.java:26: cannot find symbol
symbol  : variable bez
location: class fahrzeug.Auto
		System.out.println("\nDas Auto ist ein " +	bez);
		                                          	^
C:\Users\Clou\Office\Java\MeineKlassen\fahrzeug\Auto.java:28: cannot find symbol
symbol  : variable geschw
location: class fahrzeug.Auto
		System.out.println("Der Top-Speed: " +	geschw);
		                                      	^
C:\Users\Clou\Office\Java\MeineKlassen\fahrzeug\Auto.java:30: cannot find symbol
symbol  : variable verliehen
location: class fahrzeug.Auto
		if (verliehen) {
		    ^
6 errors

Prozess beendet mit Exit-Code 1
 
S

SlaterB

Gast
genauer gesagt wird die Klasse StrassenFzg nicht gefunden, ClassPath dürfte es aber in der Tat sein,
oder Aufruf vom falschen Verzeichnis,

du musst nach C:\Users\Clou\Office\Java\MeineKlassen\
und dort
[c]javac -cp . fahrzeug/Auto.java[/c]
eintippen, geht das?
besser wäre wenn auch
[c]javac fahrzeug/Auto.java[/c]
klappt, gehts?
 

theodosis

Mitglied
Du sollst beide Dateien in einem Verzeichniss 'fahrzeug' kopieren.

dann gehe ein Verzeichnis vorher und kompiliere als

javac fahrzeug/Auto.java

fuer die Ausfuehrung du sollst

java fahrzeug.DieKlasseMitDerMainMethode

wieder aus dem ../fahrzeug Verzeichnis
 

clou

Mitglied
Mein Eclipse kompiliert ohne Probleme.

Dein Kompiler findet die Klasse Auto nicht, könnte das am ClassPath liegen?

ClassPath ist mir nicht wirklich ein Begriff, ich stehe noch am Anfang von java, sorry :-(

genauer gesagt wird die Klasse StrassenFzg nicht gefunden, ClassPath dürfte es aber in der Tat sein,
oder Aufruf vom falschen Verzeichnis,

du musst nach C:\Users\Clou\Office\Java\MeineKlassen\
und dort
[c]javac -cp . fahrzeug/Auto.java[/c]
eintippen, geht das?
besser wäre wenn auch
[c]javac fahrzeug/Auto.java[/c]
klappt, gehts?

Kompilieren tu ich aus TextPad heraus. Das kompilieren mit cmd.exe hat bei anderen Dateien nicht geklappt, jedoch bei TextPad, deshalb bin ich dabei geblieben. Vielleicht liegt hier ja schon der Fehler?

Du sollst beide Dateien in einem Verzeichniss 'fahrzeug' kopieren.

dann gehe ein Verzeichnis vorher und kompiliere als

javac fahrzeug/Auto.java

fuer die Ausfuehrung du sollst

java fahrzeug.DieKlasseMitDerMainMethode

wieder aus dem ../fahrzeug Verzeichnis

Ich habe nun Auto.java in ein Verzeichnis vorher kopiert (MeineKlassen), so funktioniert das kompilieren, vielen Dank. Ich verstehe allerdings nicht, warum das funktioniert, weil die Variablen ja von StrassenFzg geerbt werden, das ein Verzeichnis tiefer steht.
 

Andi_CH

Top Contributor
ClassPath hat eigentlich gar nichts mit Java zu tun, sondern mit der Entwicklungsumgebung bzw. dem Kompiler

Schau mal hier

Ich denke du kennst die Systemvariable "Path".

Die sagt dem Betriebssystem wo es nach Programmen suchen soll, wenn du z.B. "java" eintippst.
(Wenn du auf der Konsole nicht kompilieren kannst, fehlt etwas in path - nämlich der Weg zum Javakompiler, aber das ist ein anderes Thema.)

"ClassPath" ist etwas ähnliches für den Kompiler - da drin steht wo er nach Klassen suchen soll.

Auch wenn du aus dem Editor heraus kompilierst braucht es diese Angabe, wo man das allerdings in deinem Fall einstellt weiss ich nicht.

Seltsam ist allerdings, dass du kompilierern kannst wenn die beiden Dateien nicht im selben driectory stehen. Es steht ja in beiden
Java:
package fahrzeug;
also müssten beide im Directory fahrzeug sein - vielleicht weiss da jemand mehr.
 
Zuletzt bearbeitet:
D

Dany

Gast
Wo möglich musst du die Variable setzen, falls Windows, auf: "start" auf "computer" rechtsclick "erweiterte system einstellungen" öffnet ein Fenster mit "Systemeigenschaften" dort auf "erweitert" und auf "umgebungsvariablen" dort kannst du bei Systemvariablen den classpath "bearbeiten" und das verzeichnis in dem du das unterverzeichnis fahrzeug hast eingeben mit " .; " vorangestellt.
Hat ja nicht wirklich mit java zu tun.

D.
 

Sonecc

Gesperrter Benutzer
Yes, wieder misbrauchen wir das Danke System aufs übelste. Wir danken selbst denen, denen wir nicht danken müssen. Hach, wie toll das doch ist, diesen Button sinnlos zu drücken.
 

Andi_CH

Top Contributor
Mein Zeigefinger juckt --- ob ich dir für diese Äusserung danken soll :) Wie hoch geht der Zähler - über 65535? Lasst es uns ausprobieren.

Was ist so schlecht daran den Knopf zu drücken?
 
M

maki

Gast
Sonecc meinte vielleicht diese Falschinformation:
ClassPath hat eigentlich gar nichts mit Java zu tun, sondern mit der Entwicklungsumgebung bzw. dem Kompiler
Das stimmt eben von vorne bis hinten nicht, ist sicherlich keine "Danke" Wert.

Der Classpath gehört zu Java, sowohl beim kompilieren als auch beim ausführen.

Ansonsten denke ich dass man den "Danke" Button nicht überbewerten sollte..
 

Sonecc

Gesperrter Benutzer
Es ist vollkommen in Ordnung in zu drücken, wenn man wirklich für etwas dankbar wäre. Wenn jemand einem geholfen hat, kann ihm (einmal) dafür danken. Das ganze aber bei absolut jedem Beitrag in einem Thema zu machen, führt das System ins sinnlose, da man dadurch anhand der erhaltenen Danke nur noch bedingt erkennen kann, wie hilfreich der Nutzer ist.

Zumal hier einige Falsche Aussagen oder inhaltlich kaum vorhandene Beiträge bedankt wurden
 

clou

Mitglied
Wenn jemand einem geholfen hat, kann ihm (einmal) dafür danken.

Bis jetzt hat mir jede Aussage geholfen, bei der ich auch Danke gesagt habe. Und auch wenn das nicht so wäre... die Mühe, die sich die Leute hier machen muss doch wenigstens mit einem Danke belohnt werden. Wusste ja nicht, dass es da kleinliche Regeln gibt :-(

Aber jetzt probier ich erst mal weiter. Ich melde mich dann, wenn's wieder hängt. Danke an alle :)
 

clou

Mitglied
Hier bin ich wieder. Es lag tatsächlich an der ClassPath. Danke nochmal an alle:

Richtig ist: .;C:\Users\Clou\Office\Java\MeineKlassen

Vorher war das hier drin (weiß aber nicht, wie das da rein kam): .;C:\Program Files\Java\jre6\lib\ext\QTJava.zip

Und im Buch stand da auch nix, nur, dass man den Path ändern soll, nicht aber den ClassPath. Blödes, gemeines Buch :)
 
D

Dany

Gast
Bei Java(jre) selbst, wenn man sich nicht irrt, wird der Path oder Classpath automatisch hineingeschrieben, also konntest du den Link den du entfernt hast einfach so belassen, eigentlich dein neuen Link nur hinten anhängen...
 
M

maki

Gast
Den Classpath sollte man nie per Umgebungsvariable setzen, entweder per Parameter, oder im Manifest.
Quicktime erzeugt leider immer so eine Umgebundgsvariable bei der Installtion...
 

clou

Mitglied
Den Classpath sollte man nie per Umgebungsvariable setzen, entweder per Parameter, oder im Manifest.
Quicktime erzeugt leider immer so eine Umgebundgsvariable bei der Installtion...

ähhh -häää? Versteh nix. Hab ich das gemacht mit der Umgebungsvariable? Ohne es zu wissen? Hab doch nur den Pfad reingeschrieben. Oder was meinst du?
 

clou

Mitglied
Hast du denn nun eine Umgebugsvariable die CLASSPATH heisst oder nicht?

Offensichtlich schon...

Ja, unter Umgebungsvariablen steht Classpath mit folgendem Eintrag: .;C:\Users\Clou\Office\Java\MeineKlassen
Seitdem funktioniert es. Wie ich deiner Antwort entnehmen kann geht das auch anders. Soweit bin ich aber noch nicht.
 
M

maki

Gast
Wie gesagt, die CLASSPATH Umgebunsvariable will man normalerweise nicht, leider erzeugt Quicktime sie bei der Installation.
Entweder man nutzt den -classpath Parameter (kurz -cp), oder man trägt den Classpath ins Manifest ein: Setting the class path
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Fehler im Code (Aufgabe für Anfänger) Java Basics - Anfänger-Themen 11
C Fehler im Code Java Basics - Anfänger-Themen 10
S Fehler bei Code mit SubStrings für mich nicht auffindbar. Java Basics - Anfänger-Themen 4
J Fehler im Code, aber ich weiß nicht wieso! Java Basics - Anfänger-Themen 6
S Brauche hilfe in Java [Fehler in mein Code]? Java Basics - Anfänger-Themen 2
H 3 oder 4 Fehler im Code Java Basics - Anfänger-Themen 0
H 3 oder 4 Fehler im Code Java Basics - Anfänger-Themen 19
G Zinsberechnung - Fehler im Code Java Basics - Anfänger-Themen 35
S Hinweis zu Fehler im Kalender-Code - Aufgabe 5.3 aus Grundkurs Programmieren in Java 7. Auflage Java Basics - Anfänger-Themen 4
J Fehler im Code Java Basics - Anfänger-Themen 2
D Code Fehlerhaft finde den Fehler nicht. Java Basics - Anfänger-Themen 1
S Warum führt der folgene Code zu einem Fehler? Java Basics - Anfänger-Themen 3
R Schaffe es nicht Random-Programmierung zu vollenden. Wo liegt der Fehler in diesem Code? Java Basics - Anfänger-Themen 13
A Hilfe Java1 Uni : Code zeigt Fehler Java Basics - Anfänger-Themen 8
M Sortieren von Zahlen: Code ohne Fehler, funktioniert trozdem nicht Java Basics - Anfänger-Themen 2
C Fehler in Java-Code finden Java Basics - Anfänger-Themen 17
C Fehler im Code - Hilfe Java Basics - Anfänger-Themen 5
C Fehler im GUI-Code Java Basics - Anfänger-Themen 2
D Fehler im Code. Nur wo?? Java Basics - Anfänger-Themen 9
Screen Ein logischer Fehler im Code, Help pls Java Basics - Anfänger-Themen 6
A gcj Native Code compile Fehler Java Basics - Anfänger-Themen 5
A Logischer Fehler im Code Java Basics - Anfänger-Themen 4
A Semantische bzw. Syntaktische Fehler im Code Java Basics - Anfänger-Themen 5
S Fehler in Code - Bitte überprüfen Java Basics - Anfänger-Themen 6
F Fehler im Java Code, hilfe? Java Basics - Anfänger-Themen 9
S Fehler im Code Java Basics - Anfänger-Themen 6
F Kann mir jemand bei dem Fehler helfen? Java Basics - Anfänger-Themen 6
Juelin jedit Fehler beim starten Java Basics - Anfänger-Themen 2
I Frage Thymeleaf -> Fehler ignorieren und mit "" ersetzen? Java Basics - Anfänger-Themen 15
E Matrizenmultiplikation Fehler Java Basics - Anfänger-Themen 0
Z Fehler Zeiterfassungsprogramm Anzeige Java Basics - Anfänger-Themen 3
C SwingWorker mit Fehler Java Basics - Anfänger-Themen 2
monsterherz Fehler Semikolon fehlt - ich weiss aber nicht wo da noch eines hin sollte... Java Basics - Anfänger-Themen 21
G Compiler-Fehler Fehler in Zeile 1 beheben, wie? Java Basics - Anfänger-Themen 9
W Fehler in der Datei pom.xml Java Basics - Anfänger-Themen 19
marcelnedza Finde meinen Fehler in einer Methode nicht, Java Karol Java Basics - Anfänger-Themen 15
monsterherz einfache Methode mit Fehler den ich nicht finde Java Basics - Anfänger-Themen 21
monsterherz if / else if mit Fehler den ich leider nicht finde Java Basics - Anfänger-Themen 11
N Interpreter-Fehler Compiler zeigt keine Fehler an, aber das Programm läuft nicht (BlueJ) Java Basics - Anfänger-Themen 2
ohneInformatik; Dynamische Zinsen. Wo liegt der Fehler? Java Basics - Anfänger-Themen 4
Fiedelbambu deriveFont Fehler wer kann Helfen? Java Basics - Anfänger-Themen 4
I Ical4j / Kalender einlesen von URL - Fehler: "Unparseable date" Java Basics - Anfänger-Themen 16
Lion.King Fehler in double und int Java Basics - Anfänger-Themen 7
H BlueJ: was genau ist hier der Fehler? Java Basics - Anfänger-Themen 14
berserkerdq2 Habe ein Spiel entwickelt, dass immer in der 4 Runde einen cast-Fehler erhält Java Basics - Anfänger-Themen 3
D Datentypen LocalDate.parse() ergibt Fehler Java Basics - Anfänger-Themen 5
stormyark Fehler beim überschreiben einer Variable Java Basics - Anfänger-Themen 1
T String Array Fehler beim Index Java Basics - Anfänger-Themen 3
N Fehler "Cannot instantiate the type" Java Basics - Anfänger-Themen 3
L Ich weis nicht was der Fehler ist! Java Basics - Anfänger-Themen 14
L30nS JNI Fehler, JRE und JDK Java Basics - Anfänger-Themen 8
E Executable jar file fehler Java Basics - Anfänger-Themen 9
S Fehler beim Programm Java Basics - Anfänger-Themen 2
U Warum kriege ich hier eine nullpointer exception, sehe den Fehler nicht (swing) Java Basics - Anfänger-Themen 1
J Syntax-Fehler? Java Basics - Anfänger-Themen 2
Jose05 Fehler im Programm feststellen Java Basics - Anfänger-Themen 2
S Methoden 2 non-static Methoden, trotzdem Fehler "non static method can not be referenced from a static context" Java Basics - Anfänger-Themen 9
G Taschenrechner ergibt Fehler in if-Abfrage Java Basics - Anfänger-Themen 6
I Fehler bei for-Schleife Java Basics - Anfänger-Themen 6
lol5443 Tic Tac Toe Fehler Java Basics - Anfänger-Themen 5
K Fehler bei der Implementierung Java Basics - Anfänger-Themen 6
W Verschachtelte If-else --> finde meinen Fehler nicht Java Basics - Anfänger-Themen 30
J Fehler bei array aus anderer Klasse Java Basics - Anfänger-Themen 3
H Fehler bei integer Division Java Basics - Anfänger-Themen 28
C Fehler beim erstellen eines Objektes Java Basics - Anfänger-Themen 3
N Was bedeutet dieser Fehler Java Basics - Anfänger-Themen 2
fuerteb Compiler-Fehler Methode wird nicht bzw. als Fehler erkannt Java Basics - Anfänger-Themen 4
Lion.King Fehler Java Basics - Anfänger-Themen 5
AlexG. Nullpointer exeption Fehler Java Basics - Anfänger-Themen 0
J Anfänger, Fehler; "Der Hund liegt begraben" Java Basics - Anfänger-Themen 3
Aqtox Hallo ich muss für die Schule ein Wuerfell Duell erstellen jedoch habe ich ein fehler Java Basics - Anfänger-Themen 4
V Wer findet den Fehler :) Java Basics - Anfänger-Themen 12
B ArrayIndexOutOfBoundsException, ich finde den Fehler nicht? Java Basics - Anfänger-Themen 10
A Compiler Fehler - not a statement Java Basics - Anfänger-Themen 2
Arita welche Fehler gibt es noch? wie kann ich es noch vervollständigen Java Basics - Anfänger-Themen 15
S Kriege Fehler "Exception in thread" beim Benutzen von SubStrings. Java Basics - Anfänger-Themen 2
H Logik Fehler erkennen Java Basics - Anfänger-Themen 21
T Fehler in Caesar-Chiffre Java Basics - Anfänger-Themen 7
R Fehlermeldung aber WO liegt der Fehler? Java Basics - Anfänger-Themen 7
B Nicht reproduzierbarer Fehler bei Kompilierung - Shortcut "Bereinigung" Compiler ? Java Basics - Anfänger-Themen 4
Nerdinfekt BMI Rechner, fehler beim Zurückgeben des Strings? Java Basics - Anfänger-Themen 2
pumpgun99 Fehler Meldung "else without if" Java Basics - Anfänger-Themen 3
P Was bedeutet dieser Fehler? Java Basics - Anfänger-Themen 31
KogoroMori21 Java Datum Differenz (kleiner Fehler) Java Basics - Anfänger-Themen 10
N java.util.InputMismatchException Fehler Java Scanner Java Basics - Anfänger-Themen 5
H Fehler: NullPointerException und ich weiß net warum Java Basics - Anfänger-Themen 4
R Ich sehe meinen fehler nicht Java Basics - Anfänger-Themen 8
Johannes_ece Fehler: Application Terminated (TypeError): var$0.$moveToolTo is not a function Java Basics - Anfänger-Themen 4
GermanPie Fehler in Putty (kein Hauptmanifestattribut, in jar) Java Basics - Anfänger-Themen 4
M Scannen von *.txt - Dateien; wo sind der oder die Fehler? Java Basics - Anfänger-Themen 4
P Methoden aufrufen - Fehler Java Basics - Anfänger-Themen 20
JavaClap "Bruchrechner" liefert Fehler/keine Ausgabe bei Addition und Subtraktion Java Basics - Anfänger-Themen 0
B if Clause Fehler Java Basics - Anfänger-Themen 2
G Fibonacci Zahlenreihe Fehler Java Basics - Anfänger-Themen 4
A Fehler beim Ausführen einer class Datei Java Basics - Anfänger-Themen 6
B Fehler, aber ich weiß nicht warum Java Basics - Anfänger-Themen 3
C system cannot be resolved Fehler in Eclipse Java Basics - Anfänger-Themen 18
M Compiler-Fehler Fehler beim Ausführen des Codes Java Basics - Anfänger-Themen 25
M While-Schleifen-Fehler Java Basics - Anfänger-Themen 4
N Fehler bei JUnit Test Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben