Programm läuft in Netbeans, aber nicht in der Konsole

Status
Nicht offen für weitere Antworten.

Jay1980

Bekanntes Mitglied
Servus,

Mensch, das gibts doch nicht, ich krieg es nicht hin, das Tutorial nachzubauen. Der Compiler sagt mir 'cannot find symbol' und auch bei einem anderen Beispiel (Java-Sun-Tutorial) läuft der Code in Netbeans, aber wenn ich selbst aus der Konsole erst javac dann java aufrufen will klappt das nicht. Was haltet ihr von meiner Hierachie und wie würdet ihr den Compiler aufrufen, müsst ihr den Classpath da per Hand setzen oder schaut der Compiler automatisch im aktuellen Verzeichnis, in denen ein Paket liegt?

Wäre sehr dankbar wenn mir jemand einen Link gibt, bei dem das Zusammenspiel aus package, import und classpath erläutert wird - das Buch 'Java ist auch eine Insel' habe ich vor mir, aber bis jetzt kriege ich es damit auch nicht hin.

Hier die Dateien-Struktur, diese liegen im Ordner /home/jochen/dateien/java/java_code/:

einsteigerseminar_niemann (Ordner)
- CarControl.java (Datei)
- fahrzeug (Paketordner)
-- Auto.java (Datei)
-- StrassenFzg.java (Datei)

Danke vorab, wenn mir da einer helfen kann. Ich habe Ubuntu 8.04, Java 1.6 und als Editor Vim, ich vermute es liegt am Classpath, ich fand aber auch keine Anleitung, wie ich den unter Ubuntu setze. Java habe ich mittels Synaptic-Paketmanager installiert (open-jdk....),
 

Ebenius

Top Contributor
Also mal langsam: Den Fehler bekommst du doch beim javac. Dann brauchst Du java auch gar nicht aufrufen. Welches Symbol findet der Javac denn nicht. Poste doch einfach mal den Befehl und die Ausgabe, so wie's in der Shell steht. (In CODE-Tags, bitte)

Ebenius
 

Jay1980

Bekanntes Mitglied
Nun gut dann mal meine Dateien und meine neue Struktur, weil ich testen wollte, ob ich den Netbeans-Code so übernehmen kann und dann einfach in der Konsole ausführe?

Struktur ist:
einst_sem_drei (Ordner)
- sources (Ordner)
-- Main.java
- fahrzeuge (Ordner)
-- StrassenFzg.java
-- Auto.java

Aufruf ist im Verzeichnis der Main Methode 'javac Main.java'

Anwort ist:
Code:
Main.java:3: package einst_sem_drei.fahrzeuge does not exist
import einst_sem_drei.fahrzeuge.*;
^
Main.java:9: cannot find symbol
symbol  : class Auto
location: class einst_sem_drei.sources.Main
       		Auto einAuto;
       		^
Main.java:10: cannot find symbol
symbol  : class Auto
location: class einst_sem_drei.sources.Main
		einAuto = new Auto();
		              ^
3 errors

Hier noch die Inhalte der Dateien:
Code:
// Main.java
package einst_sem_drei.sources;

import einst_sem_drei.fahrzeuge.*;


public class Main
{
	public static void main(String[] args) {
       		Auto einAuto;
		einAuto = new Auto();
	
		if ( einAuto.eingeben() ) 
		{
	 	   	einAuto.anzeigen();
		}
		else
		{
	    		System.out.println("Fehlerhafte Eingabe!");
		}

    	}
}
-
Code:
// StrassenFzg.java
package einst_sem_drei.fahrzeuge;

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;
	}
    }

}
-
Code:
// Auto.java
package einst_sem_drei.fahrzeuge;

import java.io.*;
import java.util.Scanner;

public class Auto extends StrassenFzg {
    
    protected short plaetze;

    public boolean eingeben()
    {
	Scanner eingabe = new Scanner(System.in);
	
	try
    	{
		System.out.print("Bezeichnung: ");
		bez = eingabe.next();
		System.out.print("Sitzplaetze: ");
		plaetze = eingabe.nextShort();
		System.out.print("Geschwindigkeit: ");
		geschw = eingabe.nextShort();
		return true;
    	}
   	catch (Exception 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;
    }


}

Offtopic: Warum macht Netbeans eigentlich nicht ein Projektverzeichnis, also mein_projekt, in dem die Main-Klasse liegt und dann als Unterordner die Pakete, etwa 'fahrzeuge' usw.? So wie ich das sehen konnte legt netbeans den Projektordner an, dann einen sources-Ordner, darin die Main-Klasse und auf der Hierachie des Sources-Ordner liegen die anderen packages?
 
Zuletzt bearbeitet:

Ebenius

Top Contributor
Na das erklärt doch einiges. Wenn Du "Main.java" kompilieren willst, dann sagt der Compiler, dass er die Klasse "Auto" nicht finden kann. Das ist auch klar, denn der Compiler macht zwar aus Quelltext Binärdateien, will aber alle nicht zum Kompilieren angegebenen Klassen im Binärformat haben.

Du hast also drei Möglichkeiten. Entweder Du kompilierst zuerst die Fahrzeuge einzeln, gefolgt von der Main-Klasse (direkt aus dem Projektverzeichnis):
Code:
javac einst_sem_drei.fahrzeuge/fahrzeuge/*.java
javac einst_sem_drei.fahrzeuge/sources/*.java
Oder Du kompilierst alle Klassen einzeln, aber auch in der richtigen Reihenfolge (direkt aus dem Projektverzeichnis):
Code:
javac einst_sem_drei.fahrzeuge/fahrzeuge/StrassenFzg.java
javac einst_sem_drei.fahrzeuge/fahrzeuge/Auto.java
javac einst_sem_drei.fahrzeuge/sources/Main.java
Oder Du kompilierst alles in einem Rutsch (direkt aus dem Projektverzeichnis):
Code:
javac einst_sem_drei.fahrzeuge/fahrzeuge/*.java einst_sem_drei.fahrzeuge/sources/*.java
Anmerkungen: Ein Package sollte in der Regel nicht "sources" (was bedeutet das?) heißen. Außerdem sollte es auch keine Unterstriche haben (unüblich). Und die Klasse StrassenFzg könnte auch StrassenFahrzeug heißen; damit verlierst Du nix.

Ebenius
 
Zuletzt bearbeitet:

Ebenius

Top Contributor
Offtopic: Warum macht Netbeans eigentlich nicht ein Projektverzeichnis, also mein_projekt, in dem die Main-Klasse liegt und dann als Unterordner die Pakete, etwa 'fahrzeuge' usw.? So wie ich das sehen konnte legt netbeans den Projektordner an, dann einen sources-Ordner, darin die Main-Klasse und auf der Hierachie des Sources-Ordner liegen die anderen packages?
In Java müssen die Verzeichnisse so sein wie die Packages. Das hat den Grund, dass die ClassLoader die Klassen nur in diesen Pfaden suchen müssen (was schneller geht) und den positiven Nebeneffekt, dass man die Klassen auch immer im Dateisystem findet, wenn man weiß wie sie heißen.

Aus den Klassen "com.foo.MeineKlasse" und "com.bar.MeineAndereKlasse" entsteht also immer -- auch bei anderen Entwicklungsumgebungen und bei Projekten die ohne Entwicklungsumgebung geführt werden -- diese Verzeichnisstruktur im Quellverzeichnis:
Code:
[com]
+ [foo]
  + MeineKlasse.java
+ [bar]
  + MeineAndereKlasse.java
Ebenius
 

Jay1980

Bekanntes Mitglied
Danke, werde ich mir merken mit den Paketnamen, das mit der Reihenfolge beim Kompilieren war mir etwa komplett neu. Schon Mist, wenn man so essentielle Dinge (noch) nicht weiss, ist es ja nur Zufall, wenn man mal was hinbekommt. Aber egal, noch läuft das Ding noch nicht mal.

Ich habe die von dir genannte zweite Variante genommen, aber da passierte das: javac StrassenFzg.java klappte ohne Murren, javac Auto.java brachte mir das:
Code:
Auto.java:6: cannot find symbol
symbol: class StrassenFzg
public class Auto extends StrassenFzg {
                          ^
Auto.java:17: cannot find symbol
symbol  : variable bez
location: class einst_sem_drei.fahrzeuge.Auto
		bez = eingabe.next();
		^
Auto.java:21: cannot find symbol
symbol  : variable geschw
location: class einst_sem_drei.fahrzeuge.Auto
		geschw = eingabe.nextShort();
		^
Auto.java:32: cannot find symbol
symbol  : variable bez
location: class einst_sem_drei.fahrzeuge.Auto
	System.out.println("\nDas Auto ist ein " + bez );
	                                           ^
Auto.java:34: cannot find symbol
symbol  : variable geschw
location: class einst_sem_drei.fahrzeuge.Auto
	System.out.println("Der Top-Speed: "+geschw);
	                                     ^
Auto.java:36: cannot find symbol
symbol  : variable verliehen
location: class einst_sem_drei.fahrzeuge.Auto
	if ( verliehen )
	     ^
6 errors
 

Ebenius

Top Contributor
Probier mal bei allen javac-Aufrufen noch ein "-cp ." bzw. "-classpath ." einzubauen.

Ebenius
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Erste Schritte Netbeans Programm läuft nicht Java Basics - Anfänger-Themen 23
A "Hello World"-Programm läuft nicht Java Basics - Anfänger-Themen 16
G Programm läuft durch, ohne Eingabe aus dem Chat abzuwarten Java Basics - Anfänger-Themen 4
N Interpreter-Fehler Compiler zeigt keine Fehler an, aber das Programm läuft nicht (BlueJ) Java Basics - Anfänger-Themen 2
K Warum läuft das Programm nicht(bzw. nicht richtig) Java Basics - Anfänger-Themen 4
J Mein Programm läuft bei der ersten Eingabe nicht mehr weiter, woran liegt das? Java Basics - Anfänger-Themen 6
SpigBin Programm läuft nicht weiter... Java Basics - Anfänger-Themen 10
OSchriever Jar-Programm läuft auf Windows aber nicht auf Linux(Raspberri Pi4) Java Basics - Anfänger-Themen 22
Zrebna Programm kann aus der Konsole nicht gestartet werden (in der IDE läuft es) Java Basics - Anfänger-Themen 2
A Java-Programm läuft bei installierter JDK aber nicht mit JRE? Java Basics - Anfänger-Themen 5
W Warum läuft mein Programm nicht? Java Basics - Anfänger-Themen 14
S Programm läuft nicht weiter, wie Code wiederholen? Java Basics - Anfänger-Themen 2
D Programm läuft plötzlich nicht weiter Java Basics - Anfänger-Themen 12
S Input/Output Programm läuft nach input-Abfrage nicht weiter. Java Basics - Anfänger-Themen 2
S Programm läuft in Eclipse, aber nicht über Konsole Java Basics - Anfänger-Themen 10
G Events schreiben, solange Programm läuft Java Basics - Anfänger-Themen 6
M Programm läuft nicht überall Java Basics - Anfänger-Themen 9
T Programm läuft nicht mehr... Java Basics - Anfänger-Themen 3
B Programm läuft mit 100% CPU-Last Java Basics - Anfänger-Themen 6
P Java Programm läuft nicht auf MAC Java Basics - Anfänger-Themen 7
L Programm läuft nicht! Warum? Java Basics - Anfänger-Themen 5
G Mittels Runtime prüfen ob ein Programm läuft? Java Basics - Anfänger-Themen 18
B Programm läuft.aber objektorientiert genug? :( Java Basics - Anfänger-Themen 9
P jbuilder-Programm- Wie läuft es ohne jbuilder. Java Basics - Anfänger-Themen 3
D Warum läuft dieses Programm so langsam? Java Basics - Anfänger-Themen 5
P Programm läuft nur in der IDE Java Basics - Anfänger-Themen 14
D Programm läuft - trotzdem noch ein Fehler drin. Java Basics - Anfänger-Themen 21
J Delay erzeugen, ohne Programm zu blockieren Java Basics - Anfänger-Themen 7
Ü Dead Code im Programm? Java Basics - Anfänger-Themen 13
M Java Mail Programm Java Basics - Anfänger-Themen 4
E Java Programm zur anzeige, ob Winter- oder Sommerzeit herrscht Java Basics - Anfänger-Themen 62
M Mini Jar-Programm Java Basics - Anfänger-Themen 51
G JTable Listselectionlistener friert das Programm ein Java Basics - Anfänger-Themen 8
M Das Programm stellt nichts dar Java Basics - Anfänger-Themen 2
K Programm compilierbar aber nicht ausführbar... Java Basics - Anfänger-Themen 21
Z Programm Ideen Java Basics - Anfänger-Themen 8
P Wie kann ich in meinem Java Programm etwas dauerhaft speichern? Java Basics - Anfänger-Themen 5
P Wie kann ich beispielsweise Speicherstände eines Spiels DAUERHAFT in meinem Programm speichern? Java Basics - Anfänger-Themen 3
H Java-Programm zur Ausgabe von Zuständen Java Basics - Anfänger-Themen 80
G Kann Java-Programm nicht als jar aufrufen, auch als EXE nicht Java Basics - Anfänger-Themen 19
benny1993 Java Programm erstellen für ein Fußball-Turnier Java Basics - Anfänger-Themen 3
T Programm stürzt ab Java Basics - Anfänger-Themen 40
KeinJavaFreak Erste Schritte Programm "Java(TM) Platform SE binary " nicht vorhanden Java Basics - Anfänger-Themen 1
N Programm Funktioniert mit .txt Datei aber nicht mit .rtf Datei Java Basics - Anfänger-Themen 2
D Java Programm mit Batch-Datei starten Java Basics - Anfänger-Themen 32
Jul1n4tor Programm mit Scanner und If-Statements Java Basics - Anfänger-Themen 2
D Wie sehe ich ein Java-Programm? Java Basics - Anfänger-Themen 27
K Ist das Programm schlecht bzw. schlampig programmiert ? Java Basics - Anfänger-Themen 9
Zrebna Kann Java Programm nicht in Konsole ausführen Java Basics - Anfänger-Themen 1
M Von Eclipse zum richtigen Programm Java Basics - Anfänger-Themen 1
nbergmann IntelliJ: Wie lade ich ein fertiges Programm aus dem Lehrbuch? Java Basics - Anfänger-Themen 26
D Anfängerfrage zu meinem Programm. Java Basics - Anfänger-Themen 15
nbergmann Eclipse: Lehrbuch-Programm startet nicht Java Basics - Anfänger-Themen 22
I Jetty starten von Programm (Main) Java Basics - Anfänger-Themen 27
Kydo Programm Beschreibung Java Basics - Anfänger-Themen 3
nbergmann Eclipse: Lehrbuch-Programm startet nicht Java Basics - Anfänger-Themen 7
T Java FXML selbes Fenster verschiedene Stellen im Programm Java Basics - Anfänger-Themen 5
frager2345 Programm erstellen ohne Autoboxing und Unboxing Java Basics - Anfänger-Themen 13
D JAVA Programm schreiben Java Basics - Anfänger-Themen 46
P exportiertes Programm funktioniert nur teilweise Java Basics - Anfänger-Themen 7
M Wo hält das Programm an? Java Basics - Anfänger-Themen 11
J Mein Java Programm lässt sich nicht mehr bearbeiten Java Basics - Anfänger-Themen 2
Fugover Programm funktioniert nicht Java Basics - Anfänger-Themen 11
Fugover Kopfrechnen-Programm Java Basics - Anfänger-Themen 6
NadimArazi Wie kann ich eine collision detection für die Paddles in meinem Pong Programm hinzufügen? Java Basics - Anfänger-Themen 4
sserio Wieso funktioniert mein Programm nicht Java Basics - Anfänger-Themen 2
sserio Größtes Palindrom-Produkt Programm funktioniert nur halb Java Basics - Anfänger-Themen 23
J selbst erstellte Datei mit Programm öffnen Java Basics - Anfänger-Themen 10
F nach Methode Programm nicht beenden Java Basics - Anfänger-Themen 9
A wie kann ich es in meinem Programm rein tun Java Basics - Anfänger-Themen 8
S Fehler beim Programm Java Basics - Anfänger-Themen 2
Jose05 Fehler im Programm feststellen Java Basics - Anfänger-Themen 2
F Kann mir jemand kurz dieses Programm erklären? Java Basics - Anfänger-Themen 22
I Programm erkennt nicht an das Array zurückgegeben wird trotz Initialisierung *einfach* Java Basics - Anfänger-Themen 9
J Nach dem Exportieren funktioniert mein Programm nicht mehr Java Basics - Anfänger-Themen 8
P Mein Programm wird zwar erfolgreich Compiliert, öffnet sich aber nicht Java Basics - Anfänger-Themen 6
J Kann ich mein Programm so schreiben? Java Basics - Anfänger-Themen 4
A Lotto Programm Java Basics - Anfänger-Themen 3
S Programm erstellen Java Basics - Anfänger-Themen 3
A Verarbeiten einer Excel Datei durch das java-Programm Java Basics - Anfänger-Themen 3
S MinMax Programm erstellen Java Basics - Anfänger-Themen 4
J Interpreter-Fehler Programm gibt nicht gewünschtes Ergebnis aus Java Basics - Anfänger-Themen 11
brypa Programm mit Eingabe Java Basics - Anfänger-Themen 129
B Java Programm soll mit Python kommunizeren Java Basics - Anfänger-Themen 1
M JAVA Programm in Website einbinden Java Basics - Anfänger-Themen 19
B Programm, dass alle 3 Tage eine Webseite öffnet? Java Basics - Anfänger-Themen 20
B Programm beendet sich nicht und weiteres seltsames Verhalten Java Basics - Anfänger-Themen 9
N Eclipse Programm normal ausführen Java Basics - Anfänger-Themen 1
D Programm auf Enter warten lassen Java Basics - Anfänger-Themen 2
C Programm das feststellen kann, ob eine eingegebene Zahl einem Schaltjahr entspricht, richtig geschrieben? Java Basics - Anfänger-Themen 11
C Brauche Hilfe um ein Programm zu schreiben Java Basics - Anfänger-Themen 8
F Frage betreff Programm mit dem man C++-Code in JAVA-Code übersetzen lassen kann Java Basics - Anfänger-Themen 2
nevel Programm für die Summer der Zahlen 1- 1ß Java Basics - Anfänger-Themen 12
WAB9703-04 Programm zum automatischen Ausfüllen von Formularen programmieren Java Basics - Anfänger-Themen 3
G Programm Code Java Basics - Anfänger-Themen 5
CptK Achsenskalierung in Koordinatensystem hängt Programm auf Java Basics - Anfänger-Themen 5
H Kann eine while-Schleife ein Programm blockieren? Java Basics - Anfänger-Themen 8
TimoN11 Mail Programm mit Java? Java Basics - Anfänger-Themen 1
Sajeel Chattha Dieses Programm umschreiben Java Basics - Anfänger-Themen 5
J Programm beenden ohne System.exit() oder Runtime.exit() Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben