javac zum Kompilieren von mehreren Dateien

Djinndrache

Bekanntes Mitglied
ich hab eine Frage. Es ist mir für dieses Projekt strikt untersagt ein IDE zu verwenden, daher muss ich mit javac direkt kompilieren.

Wie kann ich mit javac aber mehrere Dateien für das selbe Projekt kompilieren?

Beispiel:

Film.java
Java:
package projectX;

class Film {
	String title;
}

Main.java
Java:
package projectX;

import projectX.Film;

class Main {
	
	public static void main(String[] args){
		Film x = new Film();
		x.title = "Kuchen";
		System.out.println("x heisst " + x.title);
	}
}

Wie kompiliere ich das jetzt, sodass ich dann die Main.class über den Javabefehl benutzen kann? Ich hab testweise einfach mal "javac *.java" gemacht, gab keine Fehler aus und hat zwei class-Dateien erstellt. Kann jedoch beide nicht ausführen, er findet jeweils die "main class" nicht.
Wenn ich die Dateien einzeln kompiliere kommt bei der Main bei jedem Vorkommen von "Film" (auch schon im Import) ein Fehler...

Was mach ich falsch?



[edit: typo fixed]
 
Zuletzt bearbeitet:
das mit "javac *.java" ist soweit schon richtig ...
und das problem mit dem ausführen verstehe ich nicht *hier wäre mal der genau stack wichtig* ...
nur wenn du auf ner console bist musst du dich auch im richtigen pfad befinden

btw : wenn beide klassen im selben package sind musst du diese nicht importieren ...

bespiel

deine daten haben das package "project" ...
also müssen diese auch im entsprechenden ordner "project" innerhalb des aktuellen verzeichnisses befinden
dann musst du nur noch den richtigen pfad angeben

Code:
javac project\*.java
java project.Main

wenn du ohne eine IDE angefangen hättest java zu lernnen könntest du das auch

*genau das ist der grund warum ich der meinung bin : anfänger sollten die finger von IDE's lassen*
 
aso .. habs noch vergessen

die klasse welche
Java:
public static void main(String[])
enthält muss natürlich public sein ...
also
Java:
public class Main

ansonsten ist es klar das er main nicht findet
 
Danke dir, das hat geklappt. Hab versucht direkt im Package-Ordner dann "java Main" zu machen und das hat natürlich nicht funktioniert.

Ja, IDEs verwöhnen einen. Hab schon einige größere Projekte realisiert und jetzt kann ich mit der Konsole nichtmal ordentlich kompilieren... 🙁 Aber das hol ich ja jetzt nach 😉


Die class muss man übrigens nicht manuell auf public setzen, das geht auch ohne (ich glaube public ist Standard für classes, wenn nichts anderes angegeben ist).

Danke dir 🙂
 
FALSCH

default ist package-private ...
public MUSS immer angegeben werden wenn es gewünscht ist ... ansonsten wird default package-private verwendet ...

nach zu lesen in der API-Doc
 
FALSCH

default ist package-private ...
public MUSS immer angegeben werden wenn es gewünscht ist ... ansonsten wird default package-private verwendet ...

nach zu lesen in der API-Doc
Nein, auch falsch.

package-private ist für Methoden default.
Für Klassen ist public default. Etwas anderes als public ist nichtmal erlaubt für Klassen (Ausnahme: Inner-Classes)
 

Zurück
Oben