Java Applet |
tigerbine
Grünschnabel
Dabei seit: 03.06.2007
Beiträge: 2
|
|
Ich möchte ein Java Applet im Firefox unter Linux testen. In Eclipse gibt der Applet viewer das Applet auch wieder. Im Firefox erhalte ich die Fehlermeldung "NullPointerException" oder "Applet nicht initialisiert."
Der Code ist aus einem Trainingsbuch, wobei ich (nachdem es nicht funktionierte) 2 Dinge verändert habe.
public vor class eingefügt, dann erst funktionerte der Appletviewer.
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
|
import java.awt.Graphics;
public class HelloWorldApplet extends java.applet.Applet{
public void paint(Graphics g) {
g.drawString("Hello World", 5, 25);
}
}
|
|
Hier applet-tag vor body geschlossen, im Buch wird dies erst nach body geschlossen
(habe ich gedreht) Und warum wird der Paragraph nicht geschlossen
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
|
<html>
<head>
<title>Hello to everyone!</title>
<body>
<p>My java Applet says:<br>
<applet code="HelloWorldApplet.class" width=150 height=25>
</applet>
</body>
</html>
|
|
Wie ihr am Hello World seht, bin ich mit Java noch ganz am Anfang, wer kann mir weiterhelfen?
Kann es an Firefoxeinstellungen liegen?
|
|
17.01.2014 10:28 |
|
|
|
Zitat: |
Bis zur Verabschiedung des HTML 4.0-Standards, war das Applet-Tag zum Einbinden von Java-Applets in Webseiten vorgesehen. Inzwischen gilt es als veraltet und wurde vom W3C mit dem Object-Tag ersetzt. In HTML5 funktioniert es gar nicht mehr. |
von wiki.byte-welt.net
Da steht auch, wie es richtig geht, nämlich mit object
Das Fehlen von </p> kommt mir auch komisch vor.
edit: etwas rumprobiert:
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
|
<html>
<head>
<title>Hello to everyone!</title>
<body>
<p>My java Applet says:<br>
object:<br>
<object classid="java:HelloWorldApplet.class"
codetype="application/java-vm" width=200 height=200>
</object>
<br> <br>
applet:<br>
<applet code="HelloWorldApplet.class" width=200 height=200>
</applet>
</p>
</body>
</html> |
|
Das Problem war, dass das Fenster etwas zu schmal war, um mitzuteilen, dass hier eine Applet wäre, die aber gesperrt wurde.
Und ich jebe Karlito Recht, Java hat höchstens auf deinem Rechner etwas verloren, aber nicht im Internet
__________________ Syntax Highlighting fürs Board (Link)
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von eulerscheZahl: 17.01.2014 14:49.
|
|
17.01.2014 14:17 |
|
|
Karlito
Kaiser
Dabei seit: 11.04.2011
Beiträge: 1.461
|
|
Hallo tigerbine,
hoher Besuch vom Matheboard?
Aaalso: ich habe mal ein wenig rumprobiert. Es ist immer notwendig, die Ausführung des Java-Plugins für Firefox und Chrome freiz zu geben. Dazu erscheint normalerweise eine Freigabenachfrage. Wenn nicht, im Firefox die Tastenkombination "Strg-Shift-A" betätigen (Vorher auf irgendeine freie Fläche im Browser Klicken). Dann Unter Plugins das Java-Plugin aktivieren.
Unter Windows ist es zusätzlich noch notwendig, Java zu erlauben, Applets auszuführen. Dazu in der Windows-Systemsteuerung -> Java im Reiter "Sicherherit" den Pfad des Applets zur Ausnahmeliste hinzufügen. Alternativ (nicht zu empfehlen), sollte auch die Herabesetzung der Sicherheitsstufe funktionieren.
Allgemein ist zu sagen: Die Entwicklung von Java-Applets ist mittlerweile nicht mehr zu empfehlen. Wenn es geht sollten andere Technologien Anwendung finden. Beispielsweise HTML5 + JavaScript...
Bei Rückfragen, einfach rückfragen
Edit: der nicht geschlossene <p>-Tag ist definitiv ein Fehler. Vielleicht ist es besser das Oracle-Tutorial zu verwenden: http://docs.oracle.com/javase/tutorial/d...plet/index.html
VG,
Karlito
|
|
17.01.2014 14:45 |
|
|
tigerbine
Grünschnabel
Dabei seit: 03.06.2007
Beiträge: 2
|
|
Danke an Euch. :wave:
Es ist ein zugegeben schon älteres Lehrbuch, also sicher vor HTML5. Leider auch mit einigen Tippfehlern, aber es liest sich für einen Einsteiger ganz gut, gerade weil es in Tageslektionen aufgebaut ist.
Dann teste ich die Beispiele nur im Applet Viewer, eh ich da Tür und Tor für was aufmache ...
Für HTML5, CSS3 und Java Script liegt schon ein anderes Buch bereit :-)
Da habe ich ein anderes Problem. --> neuer Thread? Oder im OT erlaubt?
Ich bin auch in Linux unterwegs, aber nicht als root. Der Xampp Server hat nun seine Verzeichnisse so gelegt, dass man Rootrechte braucht.
Als BestPractise habe ich den Umweg über den Dokumente-Ordner genommen. Dort schreibe ich das Coding mit gedit und kopiere es über den Terminal mit Rootrechten (sudo su, oder so ...) in den xampp ordner.
Habe ich irgendwie die Möglichkeit meinem Account mehr Rechte zu geben? Bei der Anmeldung kann ich nur mich oder Gastzugang auswählen.
|
|
17.01.2014 16:46 |
|
|
Karlito
Kaiser
Dabei seit: 11.04.2011
Beiträge: 1.461
|
|
Hallo tigerbine,
Du kannst hier gerne Deine Fragen fortsetzen und brauchst keinen neuen Thread aufmachen.
Ich bin leider nicht so fit, was admin-Geschichten angeht. Eine einfache Variante, um ein Verzeichnis in XAMPP für Testzwecke freizugeben ist in deinem Homeverzeichnis ein Verzeichnis "public_html" (oder beliebig anders) anzulegen und im www-Ordner des XAMPP einen link darauf anzulegen.
Ich gehe mal davon aus, dass du Ubuntu oder Debian am laufen hast. Dort ist es normalerweise so, dass der Webserver unter dem Benutzer und der Gruppe www-data läuft. Somit geben wir der Gruppe www-data zugriff auf eines unserer Verzeichnisse und binden dies per Symbolischen Link in das Dokumentenverzeichnis von Apache ein (normalerweise /var/www)
Beispiel:
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
|
cd ~ # wechsel in das home-verzeichnis
mkdir public_html
chown tigerbine:www-data public_html # anpassung der Besitzmerkmale
chmod 755 public_html # berechtigungen für den zugriff auf das Verzeichnis
touch public_html/index.html # anlegen einer index-datei, damit das verzeichnis nicht aufgelistet wird
chmod 644 public_html # anpassung der zugriffsrechte auf die index.html
sudo ln -s tigerbine /var/www/tigerbine # anlegen eines symbolischen links zu dem neuen verzeichnis
|
|
Ich hoffe das passt.
VG,
Karlito
|
|
17.01.2014 23:45 |
|
|
ed209
Routinier
Dabei seit: 07.09.2006
Beiträge: 324
|
|
Hi Tigerbine
Eine einfache Lösung unter Ubuntu wäre gksudo, das funktioniert wie sudo aber eben für graphische Anwendungen.
Aber denk dran, es nur für simple Programme zu verwenden die zur Distribution gehören (gedit sollte kein Sicherheitsrisiko sein, also kein Problem).
Alternativ könntest du die Verzeichnisse die Du brauchst einer Gruppe zuordnen und dann deinen Benutzer dieser Gruppen hinzufügen. (Hab ehrlich gesagt selber keine Ahnung wie man das macht, aber gibt es Anleitungen zu im Internet).
Meine persönliche Lösung ist, einen Kommandozeilen-Editor zu benutzen. (vim ist besser als emacs). Damit ist man langfristig flexibler, aber das ist eine große Umgewöhnung.
Gruß,
ED209 (ehemals known as PrototypeX29A im Matheboard)
PS: Ich hatte gehofft Applets wären tot.
|
|
18.01.2014 10:18 |
|
|
tigerbine
Grünschnabel
Dabei seit: 03.06.2007
Beiträge: 2
|
|
Danke für eure Antworten. :-)
Dann kann ich Applet Lektionen aus dem java-Buch ja streichen.
xampp ist für html5/css3/javascript Buch gedacht.
|
|
18.01.2014 16:18 |
|
|
tigerbine
Grünschnabel
Dabei seit: 03.06.2007
Beiträge: 2
|
|
In einem anderen JAVA Buch lese ich etwas von Swing, Servelts, DAtenbankprogrammierung. Die Themen sind im Gegensatz zu Applets noch aktuell?
|
|
20.01.2014 11:41 |
|
|
|
Swing: graphische Benutzeroberfläche
Servlets: Java-Programme, die auf einem Server laufen, um eine Seite zu generieren (nach dem Prinzip funktionert z.B. die auf dich zugeschnittene Ergebnisseite einer Suchmaschine).
Ich kann dir leider nicht sagen, ob man dafür gewöhnlich Java verwendet (im Studium haben wir mal ein wenig mit JSP gearbeitet), die Themen selbst sind aber auf jeden Fall noch aktuell.
__________________ Syntax Highlighting fürs Board (Link)
|
|
21.01.2014 06:09 |
|
|
tigerbine
Grünschnabel
Dabei seit: 03.06.2007
Beiträge: 2
|
|
Danke.
Dann hätte ich eine konkrete Frage.
ich möchte mir eine Benutzereingabe (Buchstabe) auch als Buchstaben wieder ausgeben lassen.
Nun habe ich gelesen, dass System.in.read() aber einen Integer-Wert liefert. Wie wandle ich diesen um, so dass ich mit System.out.println wieder den eingegebenen Buchstaben sehe?
|
|
21.01.2014 21:45 |
|
|
|
Ein int hat 32 Bit, wie willst du da einen ganzen String reinbringen?
mit read() geht es nicht, da werden nicht einmal Buchstaben zugelassen
Du brauchst einen Reader:
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
|
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) {
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
System.out.print("Eingabe: ");
String eingabe = null;
try {
eingabe = br.readLine();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(eingabe);
}
} |
|
__________________ Syntax Highlighting fürs Board (Link)
|
|
22.01.2014 06:12 |
|
|
tigerbine
Grünschnabel
Dabei seit: 03.06.2007
Beiträge: 2
|
|
Danke, verstehe den Code aber noch nicht. So weit bin ich noch nicht im Lehrbuch.
Kommt vielleicht ja noch.
|
|
22.01.2014 10:14 |
|
|
Matze84
Eroberer
Dabei seit: 14.10.2012
Beiträge: 73
|
|
Ich persönlich kann dir da "Java ist auch eine Insel" in Version 7 empfehlen...
http://openbook.galileocomputing.de/javainsel/
Ich selbst habe mir das Buch gekauft, weil es dann einfacher zu lesen ist aber im OpenBook geht das auch gut. (Habe ich zumindest zu beginn gemacht, bevor ich mich zum Kauf entschieden habe)
Da wird das auch mit dem Reader, Swing, JDBC (Datenbanken in Java) erklärt oder zumindest angerissen.
XAMPP brauchst du für HTML5 / CSS3 / Javascript meines erachtens NICHT.
für diese 3 Sachen reicht theoretisch schon ein einfacher Editor wie z.B.
notepad++
XAMPP wird dann interessant, wenn du PHP und Datenbanken (Bsp.: MySQL) nutzen willst.
|
|
23.01.2014 21:24 |
|
|
Karlito
Kaiser
Dabei seit: 11.04.2011
Beiträge: 1.461
|
|
Hallo,
ich finde das Beispiel ein wenig schlecht gewählt. Versuchen wir es mal mit einer anderen Analogie:
Alle Objekte, welche ein gemeinsames Interface haben, können in einer gewissen Art auf dem selben weg benutzt werden. So zum beispiel, Dinge, die man aufschließen kann. Alle implementieren ein Schloss...
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
|
public interface ISchloss {
void aufschliessen();
}
public class Tresor implements ISchloss {
@Override
public void aufschliessen(){
// Ein sehr komplitierter Aufschliessalgorithmus
System.out.println("Tja, leider ebbe hier.");
}
}
public class Haus implements ISchloss {
@Override
public void aufschliessen(){
// Ein weniger komplitierter Aufschliessalgorithmus
System.out.println("Willkommen im Haus");
}
}
public class Main {
public static void main(string[] args){
Tresor tresor = new Tresor();
Haus haus = new Haus();
//beginne Raubzug
schliesseAuf(Haus); //Haus aufschliessen (Funktioniert, da Haus ein Schloss hat)
schliesseAuf(Tresor); //Tresor auffschliesse (Funktioniert, da Tresor ein Schloss hat)
}
//Nimmt beliebige Objekte entgegen, die ein Schloss haben
static void schliesseAuf(ISchloss ding){
ding.aufschliessen();
}
}
|
|
Anstatt das Interfache ISchloss zu nennen, hätte man es auch IAufschlissbar nennen können. Damit wird auch klar, dass alle Gegenstände, die das Interface implementieren aufschließbar sind.
Ich hoffe das macht es deutlich?
VG,
Karlito
|
|
29.01.2014 20:06 |
|
|
|