Java Compiler-Fehler

datalukas

Captain
Registriert
Dez. 2009
Beiträge
3.628
Hallo liebe CB-Community
Ich wollte mal ein bisschen Java probieren, gibt aber ein bzw. 2 Probleme:
1. Ich habe mit Eclipse ein Java-Projekt mit Standardeinstellung (aber Java SDK auf 1.7) erstellt (Hello World). Anschließend habe ich in den Ordner src im Projekt-Ordner eine Java-Datei eingefügt.
Code
Code:
class Application
{
  public static void main( String[] args )
  {
    System.out.println( "Hello World" );
  }
}

Ist eigentlich richtig. Aber Eclipse meldet mehrere Fehler:
neben class: multiple markers at this file usw.
neben public: String cannot be resolved to a type
neben System.out.println: System cannot be resolved

2. Wenn ich die Java-Datei über die Eingabeaufforderung kompilieren will, dann kommt:
Fehler: Hauptklasse Dateiname.java konnte nicht gefunden oder geladen werden
Habe es mit "java Dateiname.java" gemacht, javac ging gar nicht.

Ich hoffe mal, es macht nichts, dass ich in einem anderen Thread, der aber um ein anderes Thema handelte, die Frage gestern Abend stellte. Allerdings hat mir bis jetzt niemand geatnwortet und so ist die Warscheinlichkeit größer, außerdem ist es ja ein anderes Thema.
Gruß Datalukas
 
Der Code muss lauten:

public class Application{
public static void main( String[] args ) {
System.out.println( "Hello World" );
}
}

Es fehlt das "public" vor der class Datei. Es muss immer ein Public existieren pro Klasse, bzw muss der Klassen-Name also hier "Application" gleich dem Dateinamen sein ... wo bei dir wohl
"Dateiname.java" steht ...

Und einfach mal STRG+O drücken in der Eclipse, dann haste alle Imports somit kann keine Klasse fehlen.
 
Die Java Laufzeitumgebung java.exe kann keinen Sourcecode ausführen. Das ist kein Interpreter.
javac.exe war schon richtig. Was genau kam da für eine Fehlermeldung? Falls "Befehl nicht gefunden", installiere das Java SDK, und nicht nur die JRE
 
Du willst hier aber nicht sagen, dass jede Klasse public sein muss oder? Das mit den Dateinamen ist allerdings richtig.
 
@kinglouy Müssen sie auch nicht, aber sie müssen irgendeine Art von Sichtbarkeit aufweißen.

Code:
public class test
{
    public static void main (String args[])
    {
       system.out.println("Hallo Welt");
    }
}

Das sollte laufen.
 
Zuletzt bearbeitet:
@shrek456: Dein Code funktioniert nicht, die Klasse "System" muss mit einem Großbuchstaben beginnen. (Laut Konvention sollten dass übrigens alle Klassen)
 
shrek456 schrieb:
@kinglouy Müssen sie auch nicht, aber sie müssen irgendeine Art von Sichtbarkeit aufweißen.

Aber nicht unbedingt eine Explizite. Ist keine angegeben wird implizit package als Sichtbarkeit verwendet.
 
Mit dem neuen Code geht es immer noch nicht. Hab mal einen Screen im Anhang, vielleicht hilft das (das System ist noch klein, aber auch groß funktioniert es nicht und auch mit Application nach class geht es nicht).
Java SDK Version 1.7.0.20 ist installiert. Daran sollte es also nicht liegen.
 

Anhänge

  • Eclipsescreen.png
    Eclipsescreen.png
    162,4 KB · Aufrufe: 1.001
Zuletzt bearbeitet:
Code:
class Application {
public static void main(java.lang.String[] args) {
System.out.println("Hallo Welt!");
}
}

Vllt. geht ja das.

Und eine class brauch wie alle anderen Datentypen nicht zwingend einen expliziten Modifier.
 
Zuletzt bearbeitet: (Code tags)
Wenn der Dateiname Application ist, muss die Klasse auch Application heißen. klick doch mal auf das rote x links neben dem Code, und guck, was dir Eclipse zur Fehlerbehebung anbietet.
 
Wie schon gesagt, Application geht auch nicht, Fehlerbereinigung war "rename in file", hat aber trotzdem nicht funktioniert. Versteh einfach nicht, warum das nicht geht.
Achja, was den Befehl javac angeht: Diesen erkennt er nicht.
"Der Befehl Java ist entweder falsch geschrieben oder konnte nicht gefunden werden.
 
Zuletzt bearbeitet:
Java SDK hast du zwar installiert, aber hast du auch in Eclipse eingestellt, dass er die SDK verwenden soll?
Ist das was du da hast überhaupt ein Java Projekt?
Außerdem wenn du schon eine IDE benutzt, dann guck doch vor dem ausführen was ihn nicht passt. Die Fehler, zumindest syntaktische, werden ja schliesslich sofort angezeigt und wenn du mit der Maus auf die roten Markierungen zeigst werden sogar Vorschlänge angegeben, wie du die Fehler lösen kannst.
 
Schau' mal in den Eigenschaften deines Projekts ob du im Java Build Path eine JRE System Library eingebunden hast.
 
Die Fehlerbereinigungsmöglichkeiten habe ich anzeigen lassen. Das Problem ist aber, dass er java und System nicht kennt und wollte, dass ich eine neue Klasse definiere.
Mir ist aufgefallen, dass ich Java Runtime Enviroment in Version 6 und 7 installiert habe. Ich habe jetzt Version 6 gelöscht, doch jetzt verweigert Eclipse den Start.
Kann es sein, dass Eclipse nur mit Version 6 läuft?
 
Installiere das SDK 7 neu, dann sollte Eclipse wieder starten.
 
Das aktuelle Eclipse-Release läuft mit Java 6 oder 7. Installiere 6 einfach wieder.

Für Projekte kann man beliebige andere Runtimes verwenden. Wie von @distrophik schon angeführt, muss diese Definition stimmen. Ansonsten kann Eclipse die entsprechenden Typen nicht auflösen. Deshalb die "String cannot be resolved to a type"-Meldungen.

Was ist bei Dir unter Window->Preferences-Java-Installed JREs eingestellt und angewählt?

Wie sieht Dein Projekt Klassenpfad aus? Project Properties->Java Build Path->Libraries
 
Poste mal nen screen vom package explorer :)

EDIT: so siehts bei mir aus:
Neues Projekt angelegt "MyHelloWorld", dann File -> New -> Class-> "HelloWorld" nennen -> Haken bei "main" nicht vergessen und los gehts...
 

Anhänge

  • helloworld.jpg
    helloworld.jpg
    116,3 KB · Aufrufe: 569
Zuletzt bearbeitet:
platin91 schrieb:
Code:
class Application {
public static void main(java.lang.String[] args) {
System.out.println("Hallo Welt!");
}
}

Vllt. geht ja das.

Klassen aus dem java.lang Paket müssen nicht explizit eingebunden werde, dies passiert implizit.
Vermutlich findet Eclipse wirklich nicht das Java SDK:
Window -> Preferences -> Java -> Installed JREs -> Add -> Standard VM -> (Pfad zum JDK wählen!) -> Finish -> Checkbox des neuen JDK auswählen -> OK
 
Hab jetzt Java RE und SDK neuinstalliert, hat aber nichts gebracht. Jetzt habe ich mir mal Netbeans heruntergeladen, gibt allerdings ein Problem, wenn auch ein anderes:
Wieder HelloWorld. Diesmal ist der Fehler:
Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: java.io.PrintStream.Println
at np.NP.main(NP.java:18)
NP ist der Name des Programms.
Der Vorschlag von platin91 funktioniert auch nicht.
 
datalukas schrieb:
Hab jetzt Java RE und SDK neuinstalliert, hat aber nichts gebracht.

Wie erwartet. Das Problem lag wohl eher an der Eclipse-Konfiguration. Die notwendigen Informationen zur Fehleranalyse hast du allerdings nicht geliefert.

datalukas schrieb:
Jetzt habe ich mir mal Netbeans heruntergeladen, gibt allerdings ein Problem, wenn auch ein anderes:
Wieder HelloWorld. Diesmal ist der Fehler:

Println ist keine Methode der Klasse java.io.PrintStream. In der Javadoc-Beschreibung der Klasse findest Du alle Methoden aufgelistet.
 
Zurück
Oben