Hello World

Möchtegern

Mitglied
Hallo liebe Java-Gemeinde,

ich möchte jetzt gerne noch JAVA lernen, scheitere aber (im Gegensatz zu PHP) gleich an der ersten Hürde.

Ich habe eine HelloApp.java

Java:
import java.awt.*;
import java.applet.*;

public class HelloApp extends Applet {


  
  public static void main(String[] args)
  {
	System.out.println("Hello, world!!!");
  }
}

Wenn ich diese mit
Code:
javac HelloApp.java
kompilliere und mit
Code:
java HelloApp
aufrufe, funktioniert alles.

Auch bei
Code:
appletviewer HelloApp.html
wird ein kleines Fenster geöffnet, jedoch ohne "Hello, world" anzuzeigen.

Und bei
Code:
start HelloApp.html
bleiben der IE und der FF weiß.

Mit einem schwierigerem Beispiel, dass ich gefunden habe, funktioniert aber alles. Sogar auf der Homepage.


Hier die HelloApp.html:

HTML:
<html>
<head>
<title>Example</title>
</head>
<body>

<h1>Example</h1>

<p align=center>
<applet code="HelloApp.class" width="200" height="100" >
  
</applet>
</p>

</body>
</html>

Vielen Dank für Euere Mühe und Unterstützung

Werde, wenn ich JAVA einigermaßen kann, auch wieder Newbies helfen, wie ich das mittlerweile auch bei PHP und MySQL tue.
 
Zuletzt bearbeitet:

L-ectron-X

Gesperrter Benutzer
Applets kennen keine main()-Methode. Sie gehört nicht zu den Methoden des Applet-Lebenszyklus.
Der Browser findet also nichts zum Ausführen.

Ändere mal Zeile 8 in:
[JAVA=8]public void init() {[/code]

Dann solltest du etwas in deiner Konsole ausgegeben bekommen.
Wenn du Hello World in deinem Browser lesen möchtest, kann dein Applet bspw. so aussehen:
Java:
import java.awt.*;
import java.applet.*;
 
public class HelloApp extends Applet {  
  public void init() {
    add(new Label("Hello World!"));
  }
}

oder so:
Java:
import java.awt.*;
import java.applet.*;
 
public class HelloApp extends Applet {  
  public void paint(Graphics g) {
    super.paint(g);
    g.drawString("Hello World!", 10, 10);
  }
}
 

Landei

Top Contributor
Ich würde dir raten, Java erst einmal ohne Applets zu lernen, also einfach mit Ein- und Ausgabe über die Konsole. Die meisten Bücher und fast alle Tutorials gehen erst einmal von Desktop-Anwendungen (Konsole oder Swing) aus.
 

Möchtegern

Mitglied
@L-ectron-X:

wahnsinn, mit so einer schnellen Antwort habe ich nicht gerechnet.

Auf der Console wird mir nach
Code:
javac HelloApp.java
und
Code:
java HelloApp
folgendes ausgegeben:

Fehler: Hauptmethode in Klasse HelloApp nicht gefunden. Definieren Sie die Hauptmethode als: public static void main(String[] args)


Allerdings zeigt mir
Code:
appletviewer HelloApp.html
"Hello, World!".

Nur
Code:
start HelloApp
zeigt immer noch ein leeres Fenster. Wenn man genau hinschaut, wird für 1/10 sek. ein kleines Fenster geöffnet.


@Landei:

danke für Deinen gut gemeinten Rat, der sicherlich auch sinnvoll ist. Auf der Konsole klappt es ja auch. Trotzdem will ich nicht erst komplett JAVA auf der Konsole lernen, wenn es mir noch nicht einmal gelingt, eine kleine Klasse im Browser auszugeben.

Gruß
 

Möchtegern

Mitglied
Hallo L-ectron-X,

vielen Dank für den kompletten Code.

Habe jetzt Deinen kompletten Code übernommen und kompiliert. Trotz gleicher Fehlermeldung auf der Konsole wird diesmal im Browser "Hello World" angezeigt. Das verstehe ich nicht. Möchte ich aber gerne.

Vielen Dank und liebe Grüße
 

Paddelpirat

Bekanntes Mitglied
Du musst dich aber im Vorfeld dafür entscheiden, ob du nun eine Applikation schreiben möchtest, z.B. in Form einer Consolen-Anwendung (mit main-Methode) oder ob du ein Applet haben möchtest (mit init-Methode).

Oder du machst eine Kombination, d.h. in der Console wird die Main-Methode aufgerufen und als Applet wird die init aufgerufen.

Java:
import java.awt.*;
import java.applet.*;
 
public class HelloApp extends Applet {  
  public static void main(String[] args) {
    System.out.println("Hello, world!!!");
  }

  public void init() {
    add(new Label("Hello World!"));
  }
}
 

L-ectron-X

Gesperrter Benutzer
Auf der Console wird mir nach
Code:
javac HelloApp.java
und
Code:
java HelloApp
folgendes ausgegeben:

Fehler: Hauptmethode in Klasse HelloApp nicht gefunden. Definieren Sie die Hauptmethode als: public static void main(String[] args)
Das ist ein Fehler deines Editors bzw. deiner IDE, der/die nicht erkennt, dass es sich bei deiner Klasse um ein Applet handelt.
Der Browser sucht bei einer Applet-Klasse immer nach der init()-Methode. Das ist sein Einstiegspunkt in das Applet. Genauso, wie der Interpreter bei der ihm übergebenen Applikation nach einer main()-Methode sucht.

Allerdings zeigt mir
Code:
appletviewer HelloApp.html
"Hello, World!".
Na bitte! :toll: Das Gleiche sollte passieren, wenn du die Webseite doppelklickst.

Nur
Code:
start HelloApp
zeigt immer noch ein leeres Fenster.
start funktioniert an dieser Stelle nur mit einer ausführbaren Datei, bspw. einer exe- oder bat-Datei.
Eine class-Datei muss einem Interpreter übergeben werden.
Code:
start HelloApp
wird hier also eine Fehlermeldung des Betriebssystems provozieren, die man auch kurz für eine 1/10 Sekunde in der Kommandozeile sehen kann. ;)

Um eine Java-Applikation zu starten muss, so wie du es oben schon richtig geschrieben hast, der Java-Interpreter aufgerufen werden. Ihm wird die Klasse mit der main()-Methode übergeben.
 

Möchtegern

Mitglied
Hallo Paddelpirat,

vielen Dank für Deine schnelle und erklärende Antwort. Dort liegt also der Hase begraben. Aber in den verschiedenen Tutorials, die ich mir vorerst angeschaut habe, steht davon gar nichts. Sondern genau das Gegenteil: mann kann diesen Code auf der Konsole gebrauchen und auch mit dem Browser ausgeben.

Gruß auch
 

L-ectron-X

Gesperrter Benutzer
Was dir Paddelpirat vorgeschlagen hat, funktioniert noch in diesem Fall. Wenn du aber größere Programme mit Bildern und GUI schreiben möchtest und in einer Klasse Applet und Applikation mischst, wirst du nicht so einfach ans Ziel kommen. Es wird immer hässliche Konstrukte geben.
Ich finde es besser, wenn beide immer getrennt gehalten werden.
 

Möchtegern

Mitglied
@L-ectron-X,

vielen Dank für die Supererklärung. Das habe ich in noch keinem Tutorial gelesen. Habe mir sowieso erst mal ein paar Bücher bestellt.

Muss jetzt an die Arbeit.

Schließe das Thema, weil mir geholfen wurde.

Einen schönen Tag für Euch Alle und vielen Dank.

Liebe Grüße
Möchtegern
 

Paddelpirat

Bekanntes Mitglied
Nuja in meinem Beispiel hab ich halt nur die Startoptionen für Applet und Applikation gezeigt. Wieso funktioniert das denn nicht mehr bei größeren Projekten?!? Klar du musst die beiden Methoden so handhaben dass sie nur zum Aufrufen des Programmes dienen und nicht der gesamte sonstige Code darin steht (im übelsten Fall zweimal *g*). Aber sonst sehe ich gerade keinen Grund wieso es nicht funktionieren sollte.
 

L-ectron-X

Gesperrter Benutzer
Durchsuche mal das Forum nach Appletcation oder Applikation zu Applet oder Applet zu Applikation etc. Du findest Code-Beispiele aus denen hervorgeht, dass die Handhabung von einer Mischung von Applet und Applikation in einer Klasse unbequem werden kann. Wenn du das sauber trennst, gewinnst du so auch noch mehr Flexibilität (Wiederverwendbarkeit).
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A "Hello World"-Programm läuft nicht Java Basics - Anfänger-Themen 16
W Hello world web app Testfehler Java Basics - Anfänger-Themen 11
S System.out.printIn("Hello, World!"); Java Basics - Anfänger-Themen 3
D javac kann trotz PATH-Eintrag nicht gefunden werden (Hello World) Java Basics - Anfänger-Themen 10
K RAM - Verbrauch von "Hello World" minimieren. Java Basics - Anfänger-Themen 6
K Hello world Java Basics - Anfänger-Themen 5
J Erste Schritte Hello World Java Basics - Anfänger-Themen 2
1 Erste Schritte ständige Fehler beim Ausführen von Hello World Java Basics - Anfänger-Themen 6
K Erster Versuch ein Hello World Projekt zu schreiben Java Basics - Anfänger-Themen 11
Z Hello World Java Basics - Anfänger-Themen 18
Noppy408 Erste Schritte "Hello World!" App Java Basics - Anfänger-Themen 60
I hello world Java Basics - Anfänger-Themen 4
J hello world Java Basics - Anfänger-Themen 10
N Hibernate "Hello World" Tutorial gesucht Java Basics - Anfänger-Themen 9
P Hello World-Programm: XPSP3 mit Java 1.6.0_16: Could not find main class Hello.java Java Basics - Anfänger-Themen 11
N Scheitere am "Hello World" Programm Java Basics - Anfänger-Themen 2
G "Hello World" mit Eclipse Java Basics - Anfänger-Themen 8
G Hello World funktioniert nicht Java Basics - Anfänger-Themen 4
G Hello World: Invalid Path Java Basics - Anfänger-Themen 6
R Erste Schritte Hello.class wird im CMD nicht ausgeführt Java Basics - Anfänger-Themen 4
M Wie richte ich eine Diagonale an Robotern in einer World ein? Java Basics - Anfänger-Themen 15
M Greenfoot World und Actor Quellcode Java Basics - Anfänger-Themen 13
L OOP World of zuul - Falltür? Java Basics - Anfänger-Themen 8
Z Greenfoot Variable in einer Datei und nicht in einem Objekt/World speichern Java Basics - Anfänger-Themen 1
S World-Datei möglichst klein speichern? Java Basics - Anfänger-Themen 5
Domi741 [Greenfoot] Zugriff auf Subclass von Actor in Subclass von World Java Basics - Anfänger-Themen 16
L He.llo World -- Holle Werld Java Basics - Anfänger-Themen 6

Ähnliche Java Themen


Oben