javac findet Oberklassedatei nicht

Status
Nicht offen für weitere Antworten.

MarkIV

Mitglied
Hallo Leute, hab ein Beispielprogramm aus einem Buch abgetippt, aber es funktioniert einfach nicht.
Oberklasse ist StrassenFzg.class daraus soll die neue Klasse Auto.class entstehen.
StrassenFzg.java bzw. StrassenFzg.class und Auto.java befinden sich im gleichen Unterverzeichnis.
StrassenFzg.java wurde mit javac ohne Probleme compiliert.
In Auto.java gibt es die Zeile "public class Auto extends StrassenFzg". Da bleibt der
compiler hängen und sagt cannot resolve symbol und markiert StrassenFzg. Ich hab
auch den classpath so geändert, dass er auf das Unterverzeichnis verweist, wo sich
StrassenFzg.class und Auto.java befinden, ebenso schon mit javac -classpath
c:\Pfad\Unterverzeichnis Auto.java probiert. Es kommt immer der gleiche Fehler. Weiss jemand wo der Fehler steckt?
 
Zeig mal den Code.
Vermute mal dass etwas mit den Packages nicht stimmt.
 
Hallo maki, hab beide Quellcodes reinkopiert, wie gesagt StrassenFzg ist bereits compiliert, Auto.java leider nicht.


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



===================================


package fahrzeug;
import java.io.*;
public class Auto extends StrassenFzg
{
	public short plaetze;
	public boolean eingeben()
	{
	InputStreamReader daten;
	daten = new InputStreamReader(System.in);
	BufferedReader eingabe;
	eingabe = new BufferedReader(daten);
	try
		{
		System.out.print("Bezeichnung: ");
		bez = eingabe.readLine();
		System.out.print("Sitzplaetze: ");
		plaetze = Short.parseShort(eingabe.readLine());
		System.out.print("Geschwindigkeit: ");
		geschw = Short.parseShort(eingabe.readLine());
		return true;
		} catch (Exception e)
		{
		return false;
		}
	}
	public boolean anzeigen()
	{
	System.out.println("\nDas Auto 1st 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;
	}
}

Noctarius:
Ich hab das mal gehübscht ;-)
bitte demnächst die Java-Tags nutzen
 
Zuletzt bearbeitet von einem Moderator:
Am Code liegt es nicht, hab ich grad im Eclipse getestet...Aber BITTE benutzt doch JAVA-Tags (siehe "unauffälligen", roten Hinweis bei "Direkt antworten"


Also, geh mal bitte in den Ordner in dem das package "fahrzeug" liegt (beide .java-Dateien drin) und ruf dann
Code:
javac fahrzeug.Auto
auf.

Falls es dabei eine Fehlermeldung gibt - bitte posten.

Und bitte überprüf mal, ob die Dateinamen, der .java-Dateien, die gleichen sind wie die angegebenen Klassennamen:

Es sollte also so aussehen:

Code:
fahrzeug/
    Auto.java
    StrassenFzg.java

Und dabei auch auf Groß-/Kleinschreibung achten.
 
Hallo Ariol, hab
Code:
javac fahrzeug.Auto
eingegeben. Fehlermeldung "invalid flag" und eine Reihe von Vorschlägen um Parameter für den Compiler zu setzen.

Hab auch
Code:
javac fahrzeug.Auto.java
eingegeben. Fehlermeldung "cannot read:fahrzeug.Auto.java".

Auf Groß und Kleinschreibung hab ich geachtet.

Vielleicht ist der Pfad nicht richtig.

StrassenFzg.java und Auto.java befinden sich im Ordner MeineKlasssen. Der Pfad ist
Code:
c:\Dokumente und Einstellungen\AK\Java Programme\MeineKlassen
.

In der classpath Umgebungsvariable steht
Code:
.;C\Dokumente und Einstellungen\AK\Java Programme\MeineKlassen
 
Versuche einmal
Code:
javac fahrzeug\*.java
javac arbeitet imo noch nicht mit packages (= .) sondern noch mit Pfaden = (/ oder \)
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben