NetBeans "main class not found" in NetBeans

Ned Nederlander

Aktives Mitglied
Hallo ihr Lieben,
ich hab ein Programm, das aus vielen .javas besteht. Ausserdem liegen im gleichen Verzeichnis viele .txts, auf die zugegriffen wird. Bisher habe ich mit notepad++ gearbeitet, das tut auch wunderbar.

Nun möchte ich allerdings das ganze in NetBeans importieren. Leider funktioniert das nicht so wie ich mir das vorstelle.

Dort bekomme ich die Meldung "main class not found".

Alle .java Dateien liegen im gleichen Ordner. die main sieht so aus:

Java:
import java.io.*;
import java.lang.String;
import java.lang.StringBuffer;
import java.util.Vector;
import java.awt.*;
import java.awt.event.*;
public class main{
	public static void main (String[] args) throws FileNotFoundException, IOException{
		
				
				
		Fenster f = new Fenster();
        }
}


In Eclipse hatte ich ein sehr ähnliches Problem.

Falls sich jemand damit auskennt, wäre es nett wenn er mir helfen könnte.


Vielen Dank!
 
In Eclipse hatte ich ein sehr ähnliches Problem.


Zuerst war ich etwas stutzig, ob die IDEs resp. die JVM den Klassennamen main akzeptieren (mal davon abgesehen, dass Klassennamen immer mit einem Grossbuchstaben beginnen sollten). Sowohl Eclipse wie auch NetBeans 6.9 konnten die Klasse main kompilieren und ausführen. Insofern konnte ich anhand Deiner Angaben und des Quellcodes das "main class not found" nicht reproduzieren.
 
main ist einer der ungünstigsten Namen für eine Klasse mit einer main-Methode und generell ungünstig,
Klassen immer groß schreiben, Methoden klein, dann kann da schon keine Verwechslung autreten

deine erste main-Methode sollte
> System.out.println("Hello World");
enthalten, nicht mehr und nicht weniger, keinen Fenster-Aufruf, keine komplizierten Imports,
selbst wenn du schon weiter bist, es geht erstmal um einfache Struktur beim Übergang hier

kannst du neue Klassen mit main-Methode erstellen? übe erstmal das

danach zum 'importieren', was hat man sich unter diesem Wort vorzustellen?
rufst du irgendwelche Menüs auf, kopierst du Klassen in den Workspace?
zu NetBeans kann ich wenig sagen, Eclipse wäre mir lieber,

wann und wo erscheinen die Fehler? Screenshots?
 
mein vorgehen ist folgendes:

also ich erstelle einfach ein neues projekt mittels "Java Project with Existing Source"

ich gebe dann den ordner an, in dem meine dateien liegen.

wenn ich dann die main.java im editor anwähle und ausführen will, kommt besagte meldung.


wenn ich das programm über die konsole starte tut alles wunderbar. probleme machen wie gesagt nur IDEs.
 
Erstelle einfach ein neues Projekt ohne "Existig Source" und koppiere dein Zeug da rein, dann siehst Du nämlich auch schon alles. Auserdem wirst Du es auch besser nachvollziehen können.
 
grundsätzlich klingt das alles nicht schlecht, aber fast so allgemein formuliert wie 'ich entwickle eine Raketensteuerung',
der Fehler könnte im Detail liegen,

ich habe schon gesagt dass ich Eclipse präferiere und z.B. Screenshots mehr Details liefern könnten,
mehr fällt mir nicht zu sagen ein
 
danke mal an alle zwischendurch 🙂

ich hab jetzt mal wie vladimir es gesagt hat ein neues projekt angelegt. die main wird auch erfolgreich gefunden.

doch leider hab ich noch einen fehler ;-)

Java:
D:\DA\ProgrammNetbeans\JavaApplication2\src\javaapplication2\Main.java:18: cannot find symbol
symbol  : class Fenster
location: class javaapplication2.Main
                Fenster f = new Fenster();
                ^
D:\DA\ProgrammNetbeans\JavaApplication2\src\javaapplication2\Main.java:18: cannot find symbol
symbol  : class Fenster
location: class javaapplication2.Main
                Fenster f = new Fenster();
                                ^


irgendwie scheint die main ein problem mit meiner Fenster.java zu haben. eigentlich sollte es doch ausreichen, wenn die datei im gleichen ordner liegt wie meine main.java.



meine main sieht so aus:
Java:
package javaapplication2;


public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
   


		Fenster f = new Fenster();



	}
}


kann durchaus sein dass ich was grundlegendes falsch mache. bin für jeden tipp dankbar!
 
wenn in einer Entwicklungsumgebung, dann muss diese auch die anderen Klassen sehen,
heimlich .java-Dateien ins Verzeichnis schieben reicht nicht unbedingt, ein Refresh (F5 in Eclipse) könnte wiederum helfen
 
die javas werden alle compiliert. also die werden schon erkannt. nur scheint er irgend ein problem mit einen datei zu haben.

nachtrag:
bei manchen .javas komtm auch der fehler "error parsing file", auch bei der main.
ohne IDE tuts aber ohne probleme.
 
Zuletzt bearbeitet:
ganz oben im ersten Post hast du nicht
'package javaapplication2;'
stehen

wie sieht es bei Fenster aus, ist das in einem package oder nicht?
package-Angaben sind ziemlich wichtig, und die Java-Klassen müssen im jeweils passenden Unterverzeichnis stehen,

eine Klasse, die in keinem package ist, kann unmöglich von anderen Klassen verwendet werden, die in einem package sind
 
nein, wichtig ist in erster Linie die package-Angabe in der Datei,
ob sie in falschen Verzeichnissen fehlerfrei kompiliert werden können ist eine Frage,
spätestens beim Ausführen sollte es dann Probleme geben, was manches hier im Thread erklären könnte,

wie auch immer, am Anfang gar nicht über Möglichkeiten nachdenken sondern streng strukturiert vorgehen,
ein Projekt hat ein Grundverzeichnis oder ein src-Verzeichnis, dort sollten ausschließlich Java-Dateien ohne package-Angabe (in der Datei) liegen, bzw. am besten gar nix,
in Unterverzeichnissen a b c dürfen jeweils nur Java-Dateien mit package-Angebe a b und c liegen usw.,
zu tieferen Verzeichnisstrukturen wie a/d passt (auschließlich)
> package a.d;
usw.
 
Zuletzt bearbeitet von einem Moderator:
eigetlich brauch ich gar kein package. wenn ich das programm normal über die console ausführe liegt alles im selben ordner und wird gefunden. kann ich diese struktur nicht beibehalten?
 
dann entferne
> package javaapplication2;
und erstelle die Datei im richtigen Grundverzeichnis bzw. verschiebe sie dorthin,
wie das in NetBeans aussieht kann ich nicht sagen, ein Verzeichnis über javaapplication2, falls es das gibt (und nicht außerhalb des Projektes liegt..)
oder du bist schon im richtigen Verzeichnis und musst nur die package-Angabe entfernen
 
ich habs nun geschafft dass das programm in eclipse ausgeführt wird. danke an alle.

ein klitzekleines problem hab ich noch:

mein programm greift oft auf txt-dateien zu. diese habe ich ins gleiche verzeichnis gelegt, in dem auch meine java-dateien liegen. eclipse kopiert diese dann automatisch auch ins verzeichnis, in dem die class-dateien erstellt werden. allerdings werden die dateien nicht gefunden, wenn ich das programm ausführen will.

was muss ich tun damit eclipse diese txt.dateien findet?


danke!
 
die Txt-Dateien müssen ins Grundverzeichnis des Projektes,
zumindest wenn du einfach nur new File("test.txt"); verwendest,

siehe auch
System.out.println(new File("test.txt").getAbsolutePath());
 

Zurück
Oben