Warum erscheint bei mir "Hallo Welt" und nicht die aktuelle Eingabe?

SophiaK

Mitglied
Hallo Ihr lieben,

ich hatte davor "Hallo Welt" eingetippt und danach etwas anderes - es kommt aber immer noch "Hallo Welt". Wie kann man denn das ändern?

Danke
 

Anhänge

  • Bildschirmfoto 2021-04-24 um 18.51.07.png
    Bildschirmfoto 2021-04-24 um 18.51.07.png
    195,2 KB · Aufrufe: 55
K

kneitzel

Gast
Die Entwicklungsumgebung meckert Deine Klasse ja an. Vermutlich wurde daher der letzte Stand, der sich übersetzen ließ, ausgeführt.

Also Fehler beheben und nur Ausführen, wenn es sich auch richtig übersetzen liess.
 
K

kneitzel

Gast
Sorry, aber im Bildschirmfoto ist ganz klar zu sehen, dass die Datei "Java läuftj.java" enthält:

Java:
public class j {

Damit ist der Klassenname "j" und der Dateiname "Java läuftj.java".
 
K

kneitzel

Gast
Da wäre ich mir nicht so sicher. Was sieht der Compiler denn zuerst, den Dateinamen oder was in der Datei steht? 🤭
Es geht nicht um das, was wann wie gesehen wird sondern um korrekte Bezeichner. Das eine ist ein Dateiname und das andere der Name der Klasse.

Wenn man das dann ganz genau nehmen will, dann schaut man sich nur die Fehlermeldung an:
error: class XXX is public, should be declared in a file named XXX.java

Da es nur ein Fehler ist, wenn die class "public" ist, dann mach einfach eine java Datei mit irgend einem Namen und eine class, die nicht public ist, also z.B.:
Java:
class Test {
  public static void main(String args[]) {
    System.out.println("Test");
  }
}

Die Datei kannst Du dann übersetzen. Dann wird die Datei mit welchem Namen auch immer gelesen und die Klasse Test erzeugt. Damit entsteht dann ein Test.class
Und das kannst Du dann mit java Test ausführen. Also z.B. mit der Datei "a b.java" (also auch mit Leerzeichen - in Dateinamen ist dies erlaubt nur eben nicht in Bezeichnern):
Java:
D:\Projects\test>javac "a b.java"

D:\Projects\test>dir
 Datenträger in Laufwerk D: ist Daten
 Volumeseriennummer: C0E1-AE7A

 Verzeichnis von D:\Projects\test

24.04.2021  19:32    <DIR>          .
24.04.2021  19:32    <DIR>          ..
24.04.2021  19:32                97 a b.java
24.04.2021  19:32               398 Test.class
               2 Datei(en),            495 Bytes
               2 Verzeichnis(se), 219.345.154.048 Bytes frei

D:\Projects\test>java Test
Test

D:\Projects\test>

Aber alles, was ich nur etwas verbessern wollte, war eben der verwendete Begriff. Und da hat man eben den Bezeichner, der den Namen der Klasse angibt und den Dateinamen.
 

gtagta

Mitglied
Eine Klasse sollte so heißen wie die beinhaltende Datei. Leerzeichen sind im Klassennamen nicht erlaubt. Ergo ist der Dateiname falsch. Daran gibt es nicht viel zu rütteln.
 
K

kneitzel

Gast
Eine Klasse sollte so heißen wie die beinhaltende Datei. Leerzeichen sind im Klassennamen nicht erlaubt. Ergo ist der Dateiname falsch. Daran gibt es nicht viel zu rütteln.
Sorry, aber daran habe ich nie gerüttelt (was eine public class angeht). Ich habe Dich nur darauf hingewiesen, dass die Klasse im Namen kein Leerzeichen hat - denn die Klasse auf dem Bildschirmfoto heißt "j".

Und Deine Aussage ist schlicht wieder ungenau - denn der Dateiname wäre z.B. technisch auch ok, wenn das public vor class gelöscht würde. (Aus Clean Code Gründen sollte man es nicht machen, klar. Da bin ich ganz bei Dir.)

Falls es Dir nicht aufgefallen sein sollte: Ich habe Dir nicht wirklich widersprochen sondern lediglich darauf hingewiesen, dass die Aussage von Dir - obwohl sie durchaus das Richtige meinte - technisch nicht ganz korrekt ist. Dateiname und Name der Klasse sind nun einmal zwei Paar Schuhe. Aber die Diskussion müssen wir nicht weiter führen - denn ich sehe gerade nicht, dass es noch zu irgend etwas sinnvollem führen würde ...
 

temi

Top Contributor
Was sieht der Compiler denn zuerst, den Dateinamen oder was in der Datei steht?
Den Dateinamen.

Man kann ja durchaus mehrere Klassen in eine Datei packen. Sollte man dann noch eine Klasse (Klassenname) versehentlich in unterschiedlichen Dateien deklariert haben, dann kann die Reihefolge dieser Dateien, im Aufruf von javac, u. U. auch zu einem unterschiedlichen Ergebnis führen. Deshalb sollte man das auch tunlichst unterlassen.

Eine Klasse sollte so heißen wie die beinhaltende Datei. Leerzeichen sind im Klassennamen nicht erlaubt. Ergo ist der Dateiname falsch.
"Sollte" hat nicht die selbe Bedeutung wie "muss". Ergo ist deine Schlussfolgerung falsch. ;)

Aber grundsätzlich hast du natürlich Recht: Die Datei sollte heißen, wie die Klasse und es sollte nur eine Top-Level-Klasse in der Datei deklariert werden.
 
Zuletzt bearbeitet:
K

kneitzel

Gast
Nein, ich habe Aussagen versucht auch im Detail richtig zu stellen aber selbst @temi scheinst du nicht verstehen zu wollen.

Du wirst das richtige vorschlagen, aber Deine Aussagen sind so schlicht falsch. Aber ich werde das nicht weiter diskutieren, denn selbst beim IntelliJ Community hast du klare Fakten schlicht geleugnet.
 
K

kneitzel

Gast
Wobei ich unsicher bin, dass es sich hier um Tobias handelt. Tobias hatte zwar Probleme im Textverständnis aber von der Terminologie war er doch eigentlich so, dass er ein halbwegs vernünftiges Verständnis hatte. Und so grobe Schnitzer a.la. "IntelliJ Community ist nicht kostelos" (was von Moderatoren gelöscht wurde, danke dafür!) waren doch eigentlich nicht seine Art und Weise ....

Aber ja, vielleicht überschätze ich Tobias einfach - die Art und Weise passt auf jeden Fall zu ihm. Aber darüber nachzudenken macht wenig Sinn weil es einfach zu nichts führt. Ob Tobias nun hinter dem Account steckt oder nicht: Spätestens in einer Woche hat er eh wieder einen neuen Account ...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Z HtmlUnit click() - Formular erscheint nicht Java Basics - Anfänger-Themen 1
S Gui erscheint nicht Java Basics - Anfänger-Themen 6
S JButton erscheint erst bei Mouseover Java Basics - Anfänger-Themen 10
L Radio Button erscheint nicht Java Basics - Anfänger-Themen 5
G UnsatisfiedLinkError erscheint nur über Console Java Basics - Anfänger-Themen 6
L JButton erscheint nur mit pack() Java Basics - Anfänger-Themen 3
A JButton erscheint nicht (BlueJ) Java Basics - Anfänger-Themen 2
A JButton erscheint erst bei mouse over Java Basics - Anfänger-Themen 3
G Junit Grüner balken erscheint nicht Java Basics - Anfänger-Themen 16
H Ausgabe erscheint nicht Java Basics - Anfänger-Themen 2
G JList und ListCellRenderer - Vector erscheint doppelt Java Basics - Anfänger-Themen 6
vapparadise hallo Java Basics - Anfänger-Themen 5
J Hallo zusammen , was macht diese Methode hier genau? Java Basics - Anfänger-Themen 3
EchtKeineAhnungManchmal hallo habe ein Problem mit einer Datei -> (Zugriff verweigert) Java Basics - Anfänger-Themen 4
EchtKeineAhnungManchmal Hallo :) ich bekomme es nicht hin eine Fehlermeldung auszugeben über die GUI Java Basics - Anfänger-Themen 3
Aqtox Hallo ich muss für die Schule ein Wuerfell Duell erstellen jedoch habe ich ein fehler Java Basics - Anfänger-Themen 4
Bademeister007 Hallo Leute ich hab eine Frage zur ArrayList Java Basics - Anfänger-Themen 8
S Hallo Welt Java Basics - Anfänger-Themen 11
G Umgebungsvariable Hallo Ich habe ein Problem mit der Umgv Java Basics - Anfänger-Themen 9
T Hallo anfänger braucht Hilfe :D Java Basics - Anfänger-Themen 7
S Hallo und Fragen zu Arbeitsverzeichnis und Menü Java Basics - Anfänger-Themen 8
A Compiler-Fehler Hallo Welt Fehler Java Basics - Anfänger-Themen 5
J If textbox.text = "Hallo" then... Java Basics - Anfänger-Themen 6
P Hallo.class auf Unix? Java Basics - Anfänger-Themen 12
N static package de.hallo; ??? Java Basics - Anfänger-Themen 4
K Hallo, probleme mit Jcreator Java Basics - Anfänger-Themen 4
K Hallo, woran liegt der Fehler ? Java Basics - Anfänger-Themen 6
K Hallo, Ich suche kleine Java Program-Aufgaben zum üben ? Java Basics - Anfänger-Themen 4
S Hallo, ich hab hier ein Buch Java Basics - Anfänger-Themen 11
5 hallo welt als .jar Java Basics - Anfänger-Themen 16
G Hallo Welt Java Basics - Anfänger-Themen 10
S JTextField.setText("hallo") wirft exception. Java Basics - Anfänger-Themen 3
S Blutiger Anfänger- "Hallo Welt" unter JBuilder Java Basics - Anfänger-Themen 5
A Überwältigt von der komplexen Java Welt Java Basics - Anfänger-Themen 29
J Welt in GameOfLife klonen Java Basics - Anfänger-Themen 9
S Die Welt von Zuul Java Basics - Anfänger-Themen 2
A Greenfoot - Objekt im Vordergrund lassen, bei einer scrollbaren Welt ohne zentrierten Actor Java Basics - Anfänger-Themen 3
T Welt mit while-Schleife umzäunen Java Basics - Anfänger-Themen 27
P 2D Welt, Hashtable Java Basics - Anfänger-Themen 5
I Probleme bei der Abstraktion der realen Welt Java Basics - Anfänger-Themen 8
F Komme aus der Delphi-Welt und brauch jetz Java. Java Basics - Anfänger-Themen 5
A Neuling in der Java Welt Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben