# Webstart-Anwendung



## 0xdeadbeef (24. Nov 2004)

Gibt es eine Möglichkeit, von einer Webstart-Anwendung ein INI-File o.ä. lokal abzuspeichern und einzulesen, ohne volle Rechte per "<all-permissions/>" zu gewähren? 
Ich habe irgendwas im Hinterkopf, daß Webstart-Anwendungen in einen speziellen Bereich auf der Platte schreiben dürfen (was ja nur Sinn ergibt, wenn man keine vollen Rechte hat). Leider finde ich die entsprechende Info nicht mehr. Oder hab ich mir das eingebildet?


----------



## stev.glasow (24. Nov 2004)

Kann ich nicht mit dem persistenceservice ein paar sachen local speichern ohne großartig rechte zu haben ? Das doch läuft ähnlich wie mit Cookies, bin mir nur nicht sicher ob es einer rechteabfrage bedarf, aber ich denke nicht.


----------



## 0xdeadbeef (24. Nov 2004)

Hm, ja. Hatte ich inzwischen auch wiedergefunden. Irgendwie erscheint mir das aber recht aufwendig. Müßte ich meine gesamte Properties-Klasse entsprechend aufbohren. Mal sehen.

BTW:
Weiß nicht, ob das hier das richtige Forum dafür ist, aber könnten mal ein paar Freiwillige Linus/Unix- und Mac-User meine Webstart-Applikation testen:
http://home.arcor.de/0xdeadbeef/Calcutta.htm

Verlangt vollen Zugriff, allerdings wird bloß ein Property-File in den Pfad geschrieben, in dem das JAR liegt.
Mich würde interessieren, ob die Pfade auf Macs und Unix-System korrekt sind.

Also einfach mal Fenstergöße und -position ändern, beenden, neu starten und gucken, ob die alten Einstellungen gespeichert wurde.


----------



## 0xdeadbeef (26. Nov 2004)

Nochmal ich. 
Irgendwie verstehe ich diese JNLP-Chose nicht so ganz. Mein JNLP-File scheint korrekt zu sein. Zum einen kann ich es lokal doppelklicken und sofort startet meine Webstart-Applikation. Zum anderen hat es heute sowohl aus der Firma von mehreren Rechnern als auch von zuhause wunderbar funktioniert: auf den Link geklickt und Webstart-Applikation wird installiert bzw. startet. Ging sowohl mit Firefox als auch mit IE.
Plötzlich geht es aber nicht mehr, ohne daß ich die JNLP-Datei geändert hätte (habe bloß das JAR neu hochgeladen, das ist aber ok). Wenn ich auf meiner Seite auf den Calcutta-Link klicke, wird die JNLP-Datei als XML dargestellt, aber nicht ausgeführt. Die exakt gleiche Datei auf meiner lokalen Platte funktioniert nach wie vor. Auch JNLP auf anderen Servern werden korrekt verarbeitet, nur meine nicht  :bahnhof: 
Ich bin kurz vorm Verzweifeln... 

Wie kann das sein???


----------



## stev.glasow (26. Nov 2004)

So ein ähnliches Problem hatte ich auch schon, habe das dann von nem anderen Webserver geladen (mit Erfolg) - sorry mehr weiß ich dazu auch nicht und erklärem kann ich mir das auch nicht,  aber vieleicht hilft es ja.


----------



## 0xdeadbeef (26. Nov 2004)

Hh, heute morgen ging es wieder, jetzt geht es wieder nicht.
Mich beschleicht ja auch langsam der Verdacht, daß das irgendwie mit dem Arcor-Server zu tun hat. Aber so ganz einsichtig ist mir nicht, was genau das Problem sein könnte.


----------



## stev.glasow (26. Nov 2004)

Wenn du willlst kannst du mir das ja mal an stev.glasow@freenet.de schicken. Dann lade ich das auf diesen Server, nur mal um zu sehem ob es dort besser läuft.


----------



## 0xdeadbeef (26. Nov 2004)

Danke! Hast Mail


----------



## stev.glasow (26. Nov 2004)

Hab hoch geladen geht aber nicht    er zeigt mit das xml file an: http://www.java-forum.org/stevg/Calcutta/

[edit] Aber hier geht es: http://people.freenet.de/stev.glasow/Calcutta/Calcutta.htm

 ???:L


----------



## 0xdeadbeef (26. Nov 2004)

Arrggh!   :bahnhof:  :autsch:  :bahnhof: 

Kurioserweise geht es auf meiner eigenen Seite gerade auch wieder ???:L  !?
Was um Himmels willen ist denn da los?


----------



## stev.glasow (26. Nov 2004)

Schreibst das mal bei Sun ins Forum? Vieleicht wissen die was.


----------



## 0xdeadbeef (26. Nov 2004)

Hab's mal gepostet. Mal sehen.
Läßt Du die Dateien mal über's Wochenende oder so auf den beiden Servern?


----------



## stev.glasow (26. Nov 2004)

jo


----------



## Kerberus (27. Nov 2004)

Habe dein Programm mal auf meinem Apple G4 10.3.6 getestet und es funktioniert. Kann es sein, dass du das Property-File abspeicherst, wenn man dein Programm beendet?
Habe dein Programm zuerst über die native Menüleiste beendet und dann noch einmal gestartet -> Änderung der Fenstergrösse wurde nicht vollzogen


----------



## 0xdeadbeef (27. Nov 2004)

@Stevg
Was das Anzeigen des XML-Files angeht: das passiert laut Sun-Forum dann, wenn der MIME-Typ für JNLP-Dateien auf dem Server nicht richtig eingerichtet ist. Warum es allerdings auf dem selben Server mal geht und mal nicht, scheint mir nach wie vor merkwürdig.

@Kerberus:
Ja, ich speichere die Fenstereinstellungen beim Beenden. Bei meinem WinXP SP2 mit JRE1.5 funktioniert das auch mit dem nativen Menü sowohl im Anwendungsfenster als auch von der Taskleiste aus.  Ist natürlich schon wieder klasse, daß sich Macs da wieder anders verhalten  ???:L 
Ich habe mich aber jetzt auch noch nicht so sehr mit der Oberfläche beschäftigt, mir ging es jetzt erstmal mehr um die Pfade. Eventuell muß man zusätzlich zu windowClosing noch windowClosed abfragen? Hast Du damit Erfahrung, welche Events das Schließen per Systemmenü aif einem Mac auslöst?


----------



## Kerberus (27. Nov 2004)

Nein habe ich nicht. Ich verwende immer ein JMenuBar. Allerdings weiss ich, dass man die native Leiste in ein Programm integrieren kann. Man muss dazu allerdings Cocoa importieren, oder so.
Du könntest du das PropertyFile doch einfach bei jeder Änderung abspeichern. Dann müstest du dich auch nicht mehr um das Schliessen kümmern...
(Bei MacOSX ist es eigentlich nicht üblich das Programm mit einem Schliessen-Button zu beenden, sondern wie gesagt über eine Leiste)

Die Pfade stimmen jedoch


----------



## 0xdeadbeef (27. Nov 2004)

@Kerberus
Kannst Du nochmal kurz testen? Habe jetzt noch einen Listener für "windowClosed" eingebaut. Wenigstens dieses Event sollte durchkommen.
Habe aber auch mal zusätzlich auf die Schnelle ein Exit-Menü eingebaut...


----------



## Kerberus (27. Nov 2004)

Das mit dem Exit-Menü geht. Sofern ich das ganze über den Schliessen-Button schliesse, geht es auch, nur Befehle on der nativen Leiste werden "ignoriert", d.h. das Program beendet zwar, aber das ist auch alles...


----------



## 0xdeadbeef (27. Nov 2004)

Hm, danke fürs Testen, ist dann wohl aber ein Mac-Problem. Anscheinend ballert die native Leiste der Java-Anwendung die JVM unterm Hintern weg oder sowas. So als würde ich in Windoof die JVM per Taskmanager abschießen. Ist aber irgendwie nicht die feine Art...


----------



## Kerberus (27. Nov 2004)

Ach ja, habe herausgefunden, wie man eine JMenuBar in die native Liste hineinschiebt. Geht über die SystemProperties.


```
System.setProperty("apple.laf.useScreenMenuBar", "true");
```


----------



## 0xdeadbeef (27. Nov 2004)

Hm, als völliger Mac-Idiot weiß ich jetzt nicht so genau, was ich mit dieser Erkenntnis anfangen soll.
Eigentlich möchte ich doch bloß, daß auch auf dem Mac sauber meine Exit-Routine durchlaufen wird.
Könnte natürlich in der allergrößten Not noch in der finalize()-Methode meines Hauptfensters speichern...
Aber irgendwie scheinen mir das doch alles ziemlich krude Workarounds, weil die Java-Anwendungen nicht sauber beendet werden.


----------

