Zwei Klassen, zwei Dateien

V

Vivi

Gast
Hallo,
das ist jetzt sicher eine total einfache Frage, aber irgendwie stehe ich gerade total auf dem Schlauch :(.

Ich habe zwei Klassen, die ich in zwei Dateien haben. In der einen class ist meine main-Funktion, die die zweite Klasse aufruft. Wie spreche ich die zweite Klasse korrekt an? Diese Zweite kann ich fehlerfrei kompilieren, bei der 1. tritt immer ein Fehler auf.

Die 1. Klasse mit Main-Funktion:
Java:
public class Test
{
	public static void main( String[] args )
	{
		Test1 test1 = new Test1 ();
		test1.ausgabe();
	}
}

Die 2. Klasse, die angesprochen werden soll:
Java:
public class Test1
{
	public Test1()
	{
	}

	static void ausgabe(int n)
	{
		String t = javax.swing.JOptionPane.showInputDialog("Please enter your name:");
		String[] name = t.split(" ");
		System.out.print("Your Prename is "+name[0]+" and your surname's "+name[1]+".");
	}
}

Und die Fehlernachricht:
----------
1. ERROR in Test.java (at line 5)
Test1 test1 = new Test1 (); //das erste Test1 weißt Fehler auf
^^^^^
Test1 cannot be resolved to a type
----------
2. ERROR in Test.java (at line 5)
Test1 test1 = new Test1 (); //das hintere Test1 ist fehlerhaft
^^^^^
Test1 cannot be resolved to a type
----------
2 problems (2 errors)

Für jegliche Hilfe bin ich dankbar!

Liebe Grüße
Vivi
 

Landei

Top Contributor
Wenn ausgabe() einen Parameter n hat, solltest du diesen auch mitgeben...

Außerdem braucht man für eine statische Methode keine Instanz (auch wenn es so funktionieren sollte).
 
V

Vivi

Gast
Der Fehler kommt, wenn ich mit < javac Test.java > kompiliere. Also die Datei mit der Main-Funktion.

Danke für die Erinnerung an die Übergabe, habe jetzt den Übergabewert gelöscht, da dieser ohnehin nicht gebraucht wird (also kein < int n > mehr).
 
V

Vivi

Gast
Sorry für den Doppelpost, zu spät gesehen:

Was für ein ClassPath? Was ist das?
Vielleicht liegt hier das Problem?

Die beiden Dateien liegen im selben Ordner.
 
V

Vivi

Gast
http://service.phil-fak.uni-duesseldorf.de/tutorial/java/SelfJAVA/java0034.htm hat gesagt.:
Über die CLASSPATH Variable finden die JDK Werkzeuge und die Applikationen die Klassenbibliotheken. Sie wird nur dann benötigt, wenn sich Bibliotheken nicht im JDK Installationsverzeichnis bzw. im aktuellen Verzeichnis befinden. Ab der JDK Version 1.2.2 hat die Java Platform einen zusätzlichen Mechanismus (extension mechanism) eingebaut, um Bibiliotheken zu finden.

Anstelle der CLASSPATH Variablen kann bei den JDK Werkzeugen auch der Schalter -classpath verwendet werden. Dieser Schalter wird oft bevorzugt, denn er erlaubt die Pfade für verschiedene Applikationen indiviuell zu setzen, ohne das andere Applikationen davon beeinflusst werden.

Am CLASSPATH kann es also leider nicht liegen... Normales kompilieren funktioniert ja auch, nur eben mit diesem Aufruf einer anderen Klasse nicht.
Der Fehler hat sich im Übrigen nicht geändert, nachdem ich den Übergabewert entfernt habe (sollte er auch nicht ;)).

Freue mich über eine Lösung!
 
V

Vivi

Gast
Ohne Instanz
Java:
public class Test
{
	public static void main( String[] args )
	{
		Test1.ausgabe();
	}
}

und ohne Übergabewert n
Java:
public class Test1
{
	public Test1()
	{
	}

	static void ausgabe()
	{
		String t = javax.swing.JOptionPane.showInputDialog("Please enter your name:");
		String[] name = t.split(" ");
		System.out.print("Your Prename is "+name[0]+" and your surname's "+name[1]+".");
	}
}

erhalte ich leider denselben Fehlercode, diesmal natürlich nur auf das einzelne Test1 bezogen. Ich nehme an, dass er die Datei aus irgendwelchen Gründen nicht finden/aufrufen kann.
Allerdings komme ich nicht dahinter, woran das liegen könnte...
----------
1. ERROR in Test.java (at line 5)
Test1.ausgabe();
^^^^^
Test1 cannot be resolved
----------

P.S.: Wenn das ein Mod in einen Post schreiben könnte (tut mir Leid), wäre das super!
 
T

Tomate_Salat

Gast
Da ich ausschließliche mit IDE's arbeite, tätige ich keinen manuellen kompileraufruf, aber reicht es hier aus, nur die Datei anzugeben, die die main enthält?!
[c] javac Test.java [/c]
Wenn das der Kompileraufruf ist, könnte ich mir vorstellen, dass hier schon der Fehler liegt. Ich würde dir zu einer (oder zwei :D ) IDE raten (Eclipse und/oder Netbeans).
 
V

Vivi

Gast
Ich habe ein wenig weitergegooglet und da fiel mir im Zusammenhang mit C Makefiles ein, die unter Eclipse verwendet werden müssen. Allerdings können in C Auslagerungsdateien auch ohne Makefile integriert werden (erst die Auslagerung kompilieren, dann die Main-Datei). Genau dies möchte ich unter Java realisieren, falls das möglich ist.

Stimmt es also, dass mein Problem mit dem Kompilieren an einem fehlenden Makefile liegen könnte? Und wenn ja, kann ich auch ordentlich ohne Makefile kompilieren wie es unter C funktioniert?
 

nrg

Top Contributor
Also nachdem ich mir das nicht vorstellen konnte, dass es lt. deinen Angaben nicht funktioniert, habe ich es selbst getestet.

Das Resultat:
unbenanntbhwd.jpg


Also irgendwas machst du falsch! Hast du die Groß- und Kleinschreibung sowohl in der Shell als auch bei den Dateinamen beachtet?
 

ARadauer

Top Contributor
Ich habe ein wenig weitergegooglet und da fiel mir im Zusammenhang mit C Makefiles ein, die unter Eclipse verwendet werden müssen. Allerdings können in C Auslagerungsdateien auch ohne Makefile integriert werden (erst die Auslagerung kompilieren, dann die Main-Datei). Genau dies möchte ich unter Java realisieren, falls das möglich ist.

Stimmt es also, dass mein Problem mit dem Kompilieren an einem fehlenden Makefile liegen könnte? Und wenn ja, kann ich auch ordentlich ohne Makefile kompilieren wie es unter C funktioniert?

nein, du brauchst keine make files
 
V

Vivi

Gast
Ich danke dir, dass du dir so viel Zeit genommen hast!

Ich bin ja auch der Meinung, dass das funktionieren sollte, deswegen bin ich ja schon halb am Verzweifeln :(.
Dank deiner Idee habe ich jetzt auch mal Screenshots gemacht, du kompilierst ja sogar nur die Main-Datei, wie ich gerade sehe, allerdings mit Pfadangabe... hm...

Im Zitat oben steht jedoch, dass die Pfadangabe irrelevant sein soll, wenn sich die Klassen im selben Ordner wie die Main-Datei befinden (das ist hier ja der Fall).

ordnerv.jpg

terminala.jpg


Test1.java kompiliert, wie gesagt, Test.java allerdings nicht.
 

nrg

Top Contributor
Die Pfadangabe, die ich da mache, ist die Pfadangabe zur JDK und wird natürlich benötigt. Denke allerdings, dass das bei dir nicht das Problem sein kann, weil sonst würde "Der Befehl "javac" ist entweder falsch geschrieben oder
konnte nicht gefunden werden." kommen.
 
V

Vivi

Gast
Danke! Ich bin schon einmal beruhigt, dass ich kein Makefile brauchen werde!

So, einmal mit dem Befehl < -verbose >:
verbose.jpg


Sagen tut mir das jetzt allerdings nicht; hoffentlich kannst du (oder jemand anderes) dabei weiterhelfen, ARadauer.

Und nein, die Fehlermeldung mit der Pfadangabe bekomme ich ja zum Glück nicht...
 
V

Vivi

Gast
Und wie ändere ich es, wenn es nun wirklich am CLASSPATH liegt? Alle anderen Dateien lassen sich ja auch kompilieren und ausführen, nur diese mit dem Klassenaufruf (Test1.java) nicht (deswegen verstehe ich das mom. nicht. An die Javabibliotheken muss er ja auch so kommen, um z.B. die Dialogfunktion zu kompilieren und die funktioniert bei mir, wenn ich die zweite Klasse in die Main schreibe (also die Anweisungen in die Main von Test.java).
 

Michael...

Top Contributor
Ich hab hier nur ein WinSystem.
Aber angenommen beide java-Files liegen in C:\Projekte\Test dann müsste der Aufruf so aussehen:
Code:
javac.exe -classpath C:\Projekte\Test C:\Projekte\Test\Test.java
bzw. wenn man vorher ins entsprechende Verzeichnis wechselt:
Code:
javac.exe -classpath C:\Projekte\Test Test.java
 
T

Tomate_Salat

Gast
ich hab das gerade eben auch mal getestet. Ich musste nichts am Classpath ändern/eingeben. Und bei mir funktioniert es wunderbar
 
V

Vivi

Gast
Das ist doch zum Verücktwerden :(.

Hast du Linux, Tomate_Salat?
Wenn nicht, könnte das jemand einmal bitte auf'nem Linuxrechner versuchen?

Kann doch nicht sein, dass diese winzige Prog nur auf meinem Rechner nicht läuft!
 
T

Tomate_Salat

Gast
nope...nicht mehr. Aber normalerweise dürfte es nicht von der Plattform abhängen :-/ . Aber was mir gerade auffällt: Windows hat bei mir die Umgebungsvariable CLASSPATH mit folgenden Werten: [c].;C:\Programme\Java\jre6\lib\ext\QTJava.zip[/c]

wenn Michael...'s bsp nicht funktioniert, versuchs nochmal mit:
[c]javac.exe -classpath . Test.java[/c]

Edit
Code:
C:\...\Desktop\test>javac -classpath . Test.java
Funktioniert bei mir
 
Zuletzt bearbeitet von einem Moderator:
V

Vivi

Gast
OMG, danke Tomate_Salat!!

Der Code
Code:
javac -classpath . Test.java
hat funktioniert! Keine Fehlermeldung und das Programm läuft, super! Dankeschön :D!

Damit hat sich das Problem erledigt. Danke an alle, die mir geholfen haben!
 

Michael...

Top Contributor
Stimmt wenn sich alle java-Files in dem Verzeichnis befinden in dem man die javac ausführt, sollte die Angabe
Code:
-clathpath .
 
T

Tomate_Salat

Gast
[...]Aber was mir gerade auffällt: Windows hat bei mir die Umgebungsvariable CLASSPATH mit folgenden Werten: [c].[/c] [...]

Versuchs mal mit dem Setzen der Umgebungsvariable Classpath
(rechtsklick auf Arbeitsplatz -> Eigenschaften -> Reiter: Erweitert -> Umgebunsvariablen -> Bei Systemvariablen: Neu ->
Name der Variablen: CLASSPATH
Wert der Variablen: .
)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
berserkerdq2 Zwei Klassen Erben von der Klasse A, die eine Klasse kann ich an Methoden übergeben, die als Parameter A haben, die andere nicht? Java Basics - Anfänger-Themen 3
S Objekte von zwei klassen in zwei verschiedene Textdateien schreiben Java Basics - Anfänger-Themen 5
J Zwei Klassen die sich gegenseitig referenzieren - Bad practice? Java Basics - Anfänger-Themen 4
E Best Practice Jar-file mit zwei Klassen und externer Bibliothek über Konsole erzeugen Java Basics - Anfänger-Themen 13
B Erste Schritte Problem bei der Verknüpfung von zwei klassen Java Basics - Anfänger-Themen 8
T OOP Zwei Klassen Testen (Arrary Iterieren) Java Basics - Anfänger-Themen 6
N Mit der gleichen BlockingQueue in zwei Klassen arbeiten Java Basics - Anfänger-Themen 12
F Vererbung von Attributen zwischen zwei Klassen Java Basics - Anfänger-Themen 6
W zusammenfügen von zwei Klassen Java Basics - Anfänger-Themen 9
E Methode, zwei Klassen, Feld Java Basics - Anfänger-Themen 9
R Methode, zwei Klassen? Java Basics - Anfänger-Themen 3
Eileen Brüche addieren in Zwei Klassen mit JOptionPane Java Basics - Anfänger-Themen 4
J Zwei Klassen miteinander "verlinken" Java Basics - Anfänger-Themen 9
M In zwei Klassen auf ein Objekt zugreifen? Java Basics - Anfänger-Themen 12
C Klassen Von zwei Klassen auf den selben Zustand zugreifen... Java Basics - Anfänger-Themen 6
B Zwei Unterschiedliche Klassen bei Instanzierung Java Basics - Anfänger-Themen 5
K OOP Java import zwei gleichnamiger Klassen Java Basics - Anfänger-Themen 5
G Kommunikation zwischen zwei Klassen Java Basics - Anfänger-Themen 5
D OOP mit compareTo Array sortieren (aus zwei Klassen) Java Basics - Anfänger-Themen 3
E Ein Objekt von zwei möglichen Klassen in einer Variable Java Basics - Anfänger-Themen 5
C Zwei Klassen in einem Fenster darstellen Java Basics - Anfänger-Themen 32
U Aktionen zwischen zwei Klassen: Bester Weg? Java Basics - Anfänger-Themen 10
A Taschenrechner - Problem mit zwei Klassen Java Basics - Anfänger-Themen 6
M Programm in zwei Klassen aufteilen? Java Basics - Anfänger-Themen 8
D Rechnen mit zwei Klassen Java Basics - Anfänger-Themen 19
C Werte zwischen zwei Klassen übergeben Java Basics - Anfänger-Themen 2
G Problem mit zwei Klassen Java Basics - Anfänger-Themen 8
U Datenaustausch zwischen zwei Klassen Java Basics - Anfänger-Themen 8
G Fehler beim Kompilieren von zwei Klassen Java Basics - Anfänger-Themen 9
Torschti Eingabe von Dezimalzahlen (bis zu zwei Kommastellen) Java Basics - Anfänger-Themen 11
A 1 Leerzeichen durch zwei Leerzeichen ersetzen Java Basics - Anfänger-Themen 4
K Warum wird mir hier nach dem ersten Durchlauf zwei mal "welchen Datentyp wollen sie übergeben?" ausgegeben ? Java Basics - Anfänger-Themen 1
sasnitzer java augensumme von zwei würfeln ist 1 Java Basics - Anfänger-Themen 8
krgewb Double mit zwei Nachkommastellen Java Basics - Anfänger-Themen 2
Distanz zwischen zwei Zeichenfolgen in einem String bestimmen Java Basics - Anfänger-Themen 5
D Größtes Palindrom Produkt aus zwei dreistelligen Zahlen Java Basics - Anfänger-Themen 60
berserkerdq2 Habe zwei exceptions, welche ist ein Kommunikationsfehler und welche ein Ausgabefehler? Java Basics - Anfänger-Themen 4
B Erste Schritte Bisektion mit zwei Funktionen? Java Basics - Anfänger-Themen 1
G zwei Instanzen einer Klasse Java Basics - Anfänger-Themen 29
A Java-XSSFBook: zwei Sheets mergen Java Basics - Anfänger-Themen 5
C Zwei Arrays addieren und ausgeben Java Basics - Anfänger-Themen 3
J Speichern von zwei Variablen durch Auslesen aus einem Numberfield Java Basics - Anfänger-Themen 2
D Zwei verschiedene Intellij Projekte, wie benutze ich wechselseitig objekte Java Basics - Anfänger-Themen 8
berserkerdq2 Wie würde man einen regulären Ausdruck in Java schreiben, der prüft, dass zwei bestimtme Zahlen nicht nebeneinadner sind? Java Basics - Anfänger-Themen 3
K mit <<1 kann man mal 2 machen, mit >>2 geteilt durch zwei und was bewirkt <<<1 und >>>1? Java Basics - Anfänger-Themen 5
Dorfschmied Kartesisches Produkt von zwei Liste mit Hashmaps<String,String> erstellen Java Basics - Anfänger-Themen 4
F Abstand zwischen zwei Objekten berechnen wie? Java Basics - Anfänger-Themen 1
M Wie kann ich ein Array in zwei Hälften aufteilen? Java Basics - Anfänger-Themen 12
S Längster Pfad zwischen zwei Vertices in einem Graph Java Basics - Anfänger-Themen 3
S Aktuell beste Methode um zwei Bilder zu vergleichen..? Java Basics - Anfänger-Themen 1
A Zwei XML-Dateien Mergen Java Basics - Anfänger-Themen 14
U Erste Schritte nextGaussian zwischen zwei Werten Java Basics - Anfänger-Themen 19
S Multiplikation von zwei Labels Java Basics - Anfänger-Themen 7
U zwei 2D arrays auf gleich sein überprüfen Java Basics - Anfänger-Themen 14
Bademeister007 Elemente aus zwei verschiedenen Arrays miteinander vergleichen und gegeben falls entfernen Java Basics - Anfänger-Themen 14
Düsseldorf2002 Datentypen Zwei dimensionale LinkedList Java Basics - Anfänger-Themen 8
J Zwei Objekte vergleichen Java Basics - Anfänger-Themen 8
X Zwei Dimensionales Array prüfen Java Basics - Anfänger-Themen 1
G Methoden Informationen aus zwei Objekte bekommen? Java Basics - Anfänger-Themen 6
E Wie gebe ich alle Daten zwischen zwei Zeitpunkten aus? Java Basics - Anfänger-Themen 2
Q Besitzen zwei Strings identische Buchstaben, nur in anderer Reihenfolge? Java Basics - Anfänger-Themen 10
pkm Regexproblem - Wie kann ich zwei oder mehr beliebige Zeichen matchen? Java Basics - Anfänger-Themen 7
A Wieso bekomme ich hier zwei unterschiedliche Ausgaben? Java Basics - Anfänger-Themen 6
H Ein gegebenes Int Array zu Zwei Arrays zurück geben Java Basics - Anfänger-Themen 6
J zwei String Arrays miteinander vergleichen Java Basics - Anfänger-Themen 18
R Methode zwei Sortierkriterien der Klasse Comparator übergeben Java Basics - Anfänger-Themen 4
B Collections.sort mit zwei Bedingungen? Java Basics - Anfänger-Themen 4
X Textdatei: zwei-zeilenweise gleiche Zeilen rausschmeißen Java Basics - Anfänger-Themen 21
M Konkatenation von zwei Strings Java Basics - Anfänger-Themen 6
J Problem beim vergleich von zwei Integer Java Basics - Anfänger-Themen 3
D Input/Output Input von zwei Koordinaten validieren und anschließend Werte speichern Java Basics - Anfänger-Themen 7
L Zwei sortierte Subarrays mit gleicher Länge zusammenfügen Java Basics - Anfänger-Themen 2
F Zwei Dimensionles Array Java Basics - Anfänger-Themen 21
I Alle Elemente von zwei Listen vergleichen Java Basics - Anfänger-Themen 1
J Inhalte von zwei Arrays vertauschen?! Java Basics - Anfänger-Themen 6
O zwei Arrays nach Werten durchsuchen und zusammenfügen Java Basics - Anfänger-Themen 3
A Wie zwei zahlen in einer Variable speichern? Java Basics - Anfänger-Themen 7
N Zwei Daten (Datum) miteinander vergleichen, abspeichern, laden Java Basics - Anfänger-Themen 4
X Threads Zwei Threads, aber doppelte Ausgabe verhindern (synchronized) Java Basics - Anfänger-Themen 54
B Relativen Anteil von zwei Datümer auf Monatsebene umrechnen Java Basics - Anfänger-Themen 130
W Zwei Programme sollen auf eine Klasse zugreifen Java Basics - Anfänger-Themen 18
B Rückgabe von zwei Werten: String und double Java Basics - Anfänger-Themen 14
B Anzahl von Stunden / Tage von zwei Datumswerten ermitteln Java Basics - Anfänger-Themen 1
L Erste Schritte Elemente zwei Schlangen vergleichen Java Basics - Anfänger-Themen 14
N Zwei Strings mit "==" vergleichen warum TRUE Java Basics - Anfänger-Themen 2
D Input/Output InputDialog mit zwei Inputfeldern? Java Basics - Anfänger-Themen 4
D Funktion zwei Arraylisten zu verleichen ob gleich funktioniert nicht Java Basics - Anfänger-Themen 26
S Daten aus zwei Verschiedenen Tabellen in eine ArrayListe Java Basics - Anfänger-Themen 4
D Zwei Strings sind gleich bei if aber nicht true Java Basics - Anfänger-Themen 2
J Logging erzeugt zwei dateien.... Java Basics - Anfänger-Themen 7
S zwei-dimensionales Array Java Basics - Anfänger-Themen 20
R Zwei Attribute gleichzeitig ausgeben Java Basics - Anfänger-Themen 12
javajoshi Problem mit zwei Threads und Arrays (Runnable) Java Basics - Anfänger-Themen 12
T Classpath Zwei gleiche Dateinamen in verschiedenen Projekten möglich? Java Basics - Anfänger-Themen 13
H Bubblesort-Zwei Integer auf Dekade vergleichen. Java Basics - Anfänger-Themen 6
M Wie erzeuge ich die Differenz von zwei Daten in Stunden?? Java Basics - Anfänger-Themen 2
L Den Winkel zwischen zwei Vektoren berechnen! Java Basics - Anfänger-Themen 2
jaleda100 KeyCode – zwei Tasten gleichzeitig Java Basics - Anfänger-Themen 2
M Methoden Zwei Methoden in einem Program laufen lassen...aber wie? Java Basics - Anfänger-Themen 2
M Methoden zwei methoden gleichzeitig laufen lassen Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben