• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> Klick

Java applet progammieren - mit Exception

wiebkes

Braeburn
Registriert
21.10.11
Beiträge
43
Hei.

Ich hoffe mal, dass sich jemand findet, der mir helfen kann :)
Ausgangslage: Ich bringe mir gerade selber Java programmieren bei und habe ein kleines Applet aus meinem Java Buch (Programmering i Java - ja, ist norwegisch, aber man soll ja seine Quellen angeben) das eigentlich eine Exception auslösen sollte:
Code:
[COLOR=#941c64]import[/COLOR] javax.swing.*;
[COLOR=#941c64]import[/COLOR] java.awt.*;


[COLOR=#941c64]public[/COLOR] [COLOR=#941c64]class[/COLOR] [U]Suspekt[/U] [COLOR=#941c64]extends[/COLOR] JApplet{
    [COLOR=#941c64]public[/COLOR] [COLOR=#941c64]void[/COLOR] init(){
        add([COLOR=#941c64]new[/COLOR] Tegning9());
        [COLOR=#941c64]try[/COLOR]{
            System.[COLOR=#0431c3]out[/COLOR].println([COLOR=#3a40f4]"Skal slette filer."[/COLOR]);
[COLOR=#4c8f75]//Runtime.getRuntime().[U]exec[/U]("touch ")[/COLOR]
            Runtime.getRuntime().exec([COLOR=#3a40f4]"rm /Javatest/*.txt"[/COLOR]); //eigentlich "cmd /c del *.txt" aber wir sind ja hier nicht in Windows
[COLOR=#4c8f75]/* [U]Kommer[/U] hit [U]hvis[/U] [U]exec[/U]() [U]var[/U] [U]vellykket[/U] */[/COLOR]
[COLOR=#3a40f4][COLOR=#000000]            Runtime.getRuntime().exec([/COLOR]"touch /Javatest/test4_slettet.txt"[COLOR=#000000]);[/COLOR][/COLOR]
[COLOR=#3a40f4][COLOR=#000000]            System.[/COLOR][COLOR=#0431c3]out[/COLOR][COLOR=#000000].println([/COLOR]"Nå er filene slettet!"[COLOR=#000000]);[/COLOR][/COLOR]
        } [COLOR=#941c64]catch[/COLOR] (Exception e){
[COLOR=#4c8f75]/* [U]Kommer[/U] hit [U]hvis[/U] [U]exec[/U]() [U]ikke[/U] [U]var[/U] [U]vellykket[/U] */[/COLOR]
            System.[COLOR=#0431c3]out[/COLOR].println([COLOR=#3a40f4]"Unntaksobjekt kastet: "[/COLOR]+e.toString());
        }
    }
}


[COLOR=#941c64]class[/COLOR] [U]Tegning9[/U] [COLOR=#941c64]extends[/COLOR] JPanel{
    [COLOR=#941c64]public[/COLOR] [COLOR=#941c64]void[/COLOR] paintComonent(Graphics tegneflate){
        [COLOR=#941c64]super[/COLOR].paintComponent(tegneflate);
[COLOR=#3a40f4][COLOR=#000000]        tegneflate.drawString([/COLOR]"Dette er en suspekt applet, se etter medlinger  i Java console"[COLOR=#000000], 5, 50);[/COLOR][/COLOR]
    }
}

Die Theorie besagt, dass, wenn ich dieses Skript über ein kleines html:
Code:
 <html>        <applet code ="Suspekt.class" width="400" height="100">
        <\applet>
<\html>
<body>
        <p> dette er en test. <p>
<\body>
starte, ich die Exception auslösen müsste. Zumindest gem. besagtem Buch sollte genau das passieren. Tut es aber nicht. Die Dateien werden zwar auch nicht gelöscht, aber ich bekomme auch die Ausgabe "Unntaksobjekt kästet:..." nicht zu sehen. Das unabhängig davon ob die txt-Dateien mir gehören oder jemand anders und auch unabhängig davon ob ich das ganze über Safari, Firefox oder appletviewer starte.
Ersetze ich allerdings mein
Code:
rm /Javatest/*.txt
durch ein
Code:
rm /Javatest/test1.txt
wird die Datei gelöscht, wenn ich das ganze mit Eclipse starte, nicht aber wenn ich den appletviewer oder einen Browser benutze.
Den Text "Dette er en suspekt applet, se etter medlinger i Java console" den ich meine eigentlich irgendwo sehen können zu müssen, sehe ich in keinem der genannten Fälle.

Hat jemand von Euch eine Idee warum das so ist?

Vielen Dank schon mal vorab.

Wiebke
 

Loooki

Beauty of Kent
Registriert
15.09.09
Beiträge
2.169
Ich kenn mich jetzt nun fast gar nicht mit Applets aus aber welche Exception sollte denn kommen?
Darf man Runtime.getRuntime.exec("") überhaupt in einem Applet nutzen? - Dachte da knallt der SecurityManager dazwischen...
"Dette er en suspekt applet, se etter medlinger i Java console" Solltest du wenn dann im Applet sehen können.

Und die Rechtevergbe spielt keine Rolle. Denn es wird einfach nur der Befehl ausgeführt, du schaust ja nicht nach Fehlern. Wirklich nur stupides: "Ich schreib mal was auf die Konsole und drücke Enter". Alles andere wird ignoriert ;)

Wenn ich fertig bin mit Essen kompilier ichs mir vielleicht mal...
 

wiebkes

Braeburn
Registriert
21.10.11
Beiträge
43
Die Exception die laut meinem Buch hätte kommen sollen ist diese:
java.security.AccessControlException: access denied (java.io.FilePermission <<ALL FILES>> execute

Ich hab das mit den Dateirechten dann auch nur noch zusätzlich in den Test genommen, weil es eben keine Probleme gab, wenn ich meine eigenen Dateien damit gelöscht habe...
Ich hab allerdings meinen Dienstrechner (Windows) dieses Wochenende mal hier... wenn ich es schaffe teste ich das Skript da auch nochmal, wenn ich den fertig wieder aufgesetzt habe.
 

Loooki

Beauty of Kent
Registriert
15.09.09
Beiträge
2.169
Ha, wie ich erwartet habe.
Musste mich heute leider den ganzen Tag mit Delphi rumschalgen und bin gerade fertig geworden -> Battlefield 3.

In 2 Stunden vielleicht nochmal :D Könnte aber sein das wenn dsu in Eclipse ausführst du keine Exception bekommst. Naja mal schauen ;)
 

wiebkes

Braeburn
Registriert
21.10.11
Beiträge
43
Looki Danke für die Hilfe! Ich hab den Fehler endlich gefunden... manchmal liegt die Lösung eben doch ganz woanders...Das Problem ist nicht der Appletcode gewesen, sondern die falsch programmierte HTML-Seite. Man soll eben seine Tags mit beenden und nicht mit und das Ende von gehört auch ans Dateiende... :-cWenn ich also den HTML-Code von hier:
Code:
     <!--                    
<html> <applet code ="Suspekt.class" width="400" height="100">
<\applet>
<\html>
<body> 
<p> dette er en test. <p>
<\body> -->
durch
Code:
<!--
<html> <applet code ="Suspekt.class" width="400" height="100">
</applet>
<body> 
<p> dette er en test. <p>
</body>
</html>
-->
ersetze dann funktioniert es auch mit der Fehlermeldung:-DManchmal sitzt eben doch das grösste Problem vor dem Rechner ;)
(Theoretisch gesehen sollte hier jetzt zweimal Code stehen und nicht nur die Ausgabe desselben... wobei man sich bitte die erste und letzte Zeile wegdenken möge die sind nur da, damit nicht nur der reine Text angezeigt wird)
 
Zuletzt bearbeitet:

Loooki

Beauty of Kent
Registriert
15.09.09
Beiträge
2.169
Also so nen Fehler hab ich auch noch nicht gemacht :D
 

wiebkes

Braeburn
Registriert
21.10.11
Beiträge
43
Wenigstens bin ich noch kreativ wenn ich Fehler mache :-D