# webstart



## PollerJava (18. Okt 2007)

Hallo,

ich hab mir den webstart- Artikel von SUN durchgelesen, mit einem Kollegen diskutiert und wir sind auf verschiedene Standpunkte gekommen,

Meiner Meinung nach ist das webstart ja dem Apple nachempfunden, ich klicke den Link in dem Browser an und der webstart startet die Applikation, die Applikation wird aber nicht lokal auf dem Rechner installiert sonder ist eben mit dem Server verbunden, von dem es gestartet wurde,

Kann man das so darstellen?

Gibts eigentlich etwas wichtiges zu bedenken, wenn ich meine Applikation über webstart anbieten will?


Vielen Dank für die Antworten,


----------



## byte (18. Okt 2007)

Naja, was heisst installiert? Java-Programme werden in der Regel nie installiert, sondern einfach auf den Rechner kopiert und gestartet. Und nichts anderes macht Webstart. Er lädt die aktuelle Version des Programms vom Server auf den lokalen Rechner und startet das Programm. Vorteil: Der Benutzer hat immer die aktuelle Programmversion.


----------



## PollerJava (18. Okt 2007)

dann ist ja ein webstart nichts anderes als ein downloadlink für eine Programm, da kann ich ja dann irgendeinen Link anbieten und benötige webstart nicht dazu, oder?

Ich hab nämlich folgendes zu Lösen -> 
auf einem Server läuft mein Programm, wenn jetzt ein User den webstart oder eben eine Link drückt, dann sollte sich das Programm auf den lokalen Rechner begeben und dort auch laufen und sich mit dem (gleichen) Progamm auf dem Server verbinden,

Aber für das brauche ich ja dann webstart nicht, da kann ich ja das Programm per email ja auch versenden,
oder sehe ich da irgendwas falsch?

Ich dachte mir ja auch, dass das Programm immer direkten zugriff auf den Server benötigt von dem das Webstart eben gestartet wurde, das ist ja dann nicht so, oder?


lg


----------



## *Hendrik (18. Okt 2007)

Naja, Webstart sorgt aber auch dafür, dass die korrekte JRE auf dem Client installiert ist oder z.B. dass der User immer die aktuellste Version Deines Programmes hat (sofern eine Online-Verbindung besteht). Außerdem stellt die JNlP-API verschiedene Funktionen zu Verfügung (Bsp.) Oder wenn die Anwendung das 2. Mal gestartet wird, bietet Webstart an, eine Verknüpfung auf dem Desktop anzulegen (hab ich zumindest mal gelesen). Deswegen kann man es mit einem Downloadlink eigentlich nicht vergleichen.


----------



## Gast (18. Okt 2007)

schau mal unter systemeigenschaften / system / software, da finden sich dann auch webstart anwendungen unter "installierte anwendungen "


----------



## PollerJava (18. Okt 2007)

Vielen Dank,

lg


----------



## *Hendrik (18. Okt 2007)

Oder im Java Control Panel, d.h. bei Windows unter Systemsteuerung - Java - Karteikarte Allgemein - Bereich Temporäre Internet-Dateien - Anzeigen.


----------



## PollerJava (22. Okt 2007)

Hat jemand eine Tipp, wie ich das mit dem Webmail angehen kann,
Ich brache also einen Server, wo mein Programm oben liegt aber was mache ich weiter, hab mom keine Idee dazu,

lg


----------



## tuxedo (22. Okt 2007)

Was hat Webmail mit Webstart zu tun?

Für Webstart gibts sicher 1000 und mehr Anleitungen im Netz.

- Alex


----------



## PollerJava (22. Okt 2007)

Ja aber für die Fehlermeldung 


```
java.lang.UnsupportedClassVersionError: Bad version number in .class file
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(Unknown Source)
	at java.security.SecureClassLoader.defineClass(Unknown Source)
	at java.net.URLClassLoader.defineClass(Unknown Source)
	at java.net.URLClassLoader.access$100(Unknown Source)
	at java.net.URLClassLoader$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(Unknown Source)
	at com.sun.jnlp.JNLPClassLoader.findClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at com.sun.javaws.Launcher.doLaunchApp(Unknown Source)
	at com.sun.javaws.Launcher.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
```

hab ich nichts gefunden, Was mag er denn da nicht?

Vielen Dank,+
lg


----------



## tuxedo (22. Okt 2007)

JVM Versionskonflikt ... 

MIt was hast du's compiliert?
Mit was führst du's aus?

- Alex


----------



## PollerJava (22. Okt 2007)

Kompiliert mit Jdk 1.6.0,
Meine XML- Datei schaut so aus:



```
<?xml version="1.0" encoding="ISO-8859-1"?>
 
 
 <jnlp codebase="http://localhost:" href="viewpanel.jnlp">
 
 <information>
   <title>Viewpanel Applikation</title>
   <vendor>me</vendor>
   <description>Viewpanel Applikation</description>
   <offline-allowed/>
 </information>
 
 <information locale="de">
   <description>Viewpanel Applikation</description>
   <offline-allowed/>
</information>
 
 <security>
   
 </security>
 
 <resources>
   <j2se version="1.6"/>
   <jar href="viewpanelXML.jar"/>
 </resources>
 
 <application-desc main-class="net.pack.MainFrame"/>
 
 </jnlp>
```

jetzt bekomme ich folgende Fehlermeldung:


```
java.lang.reflect.InvocationTargetException
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at com.sun.javaws.Launcher.executeApplication(Unknown Source)
	at com.sun.javaws.Launcher.executeMainClass(Unknown Source)
	at com.sun.javaws.Launcher.doLaunchApp(Unknown Source)
	at com.sun.javaws.Launcher.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NoClassDefFoundError: org/jdom/JDOMException
	at net.pack.MainFrame.<init>(MainFrame.java:15)
	at net.pack.MainFrame.main(MainFrame.java:27)
	... 9 more
```


----------



## tuxedo (22. Okt 2007)

Man, wann lernst du endlich Exceptions zu lesen... :meld: 

--> Caused by: java.lang.NoClassDefFoundError: org/jdom/JDOMException 

Was wird das wohl heissen?  ???:L


----------



## PollerJava (22. Okt 2007)

alex0801 hat gesagt.:
			
		

> Man, wann lernst du endlich Exceptions zu lesen... :meld:



Hoffentlich bald, ich werd mich bemühen.

 :idea: 
Ich soll also die *.jar Dateien reinkopieren, das habe ich gemacht, bekomme aber die gleiche Fehlermeldung??????


----------



## tuxedo (22. Okt 2007)

Du solltest dem Webstadt-Gedöns vielleicht mitteilen dass das Programm eine Library braucht. Oder vielleicht geht das auch schon direkt in der JAR. Eben halt RTFM ... Da steht drin wie man das mit Libs macht.


----------



## PollerJava (22. Okt 2007)

Nö tut mir leid aber ich steh voll auf dem Schlauch.


```
<resources>
   <j2se version="1.6"/>
   <jar href="viewpanelXML.jar"/>
</resources>
```

hier muss ich noch die Libraries angeben?

Tut mir leid, hab bis jetzt noch kein webstart gemacht,

lg


----------



## tuxedo (22. Okt 2007)

Wenn du schon keine Anleitung lesen willst (http://java.sun.com/products/javawebstart/1.2/docs/developersguide.html), dann könntest du wenigstens das Try&Error / Learning-by-doing Prinzip verfolgen ...


----------



## PollerJava (23. Okt 2007)

Habs jetzt so weit hingebracht, dass ich die Anwendung problemlos herunterladen kann (alle jars im Webserver- Ordner und auch alle jars signiert) und wenn ich auf Ausführen drücke, dann wird ein "javaw" bei den Prozessen im Taskmanager eingetragen aber sonst passiert gar nichts mehr, also das Programm öffnet sich nicht,

Keine Ahnung, was da schief läuft


----------



## PollerJava (23. Okt 2007)

Hallo nochmal,

Ich habe in meinem Programm zum Beispiel stehen:


```
states = readStates("file:///" + System.getProperty("user.dir") + "\\Konfiguration\\" + xmlDateiPfad);
```

Das funktioniert dann mit webstart ja sowieso nicht, so soll den der Pfad sein??
Kann ich das System.getProperty("user.dir") für ein WebStart- Programm überhaupt nicht verwenden oder wie kann ich das machen?

Vielen Dank für die (Geduld) Antworten,

lg


----------



## PollerJava (23. Okt 2007)

Weiß da keiner was dazu, was aus dem System.getProperty("user.dir")  bei einer webStart- Applikation wird, 
Muss ich da was anderes hinschreiben bzw. was muss ich hinschreiben?

Vielen Dank,

lg


----------



## Xams (23. Okt 2007)

Nö, user.dir gibt dir immernoch das Verzeichnis in dem sich die Jar-Datei befindet


----------



## Wildcard (23. Okt 2007)

Xams hat gesagt.:
			
		

> Nö, user.dir gibt dir immernoch das Verzeichnis in dem sich die Jar-Datei befindet


Nein! Das user dir ist das aktuelle Arbeitsverzeichnis des Anwenders.


----------



## Xams (23. Okt 2007)

Ist das nicht user.home ?


----------



## The_S (23. Okt 2007)

Spielen wir jetzt alle ein bisschen lustiges Rätsel-Raten  ? Wenn ihrs net wisst, guckt doch einfach nach ...

http://java.sun.com/j2se/1.5.0/docs/api/java/lang/System.html#getProperties()


----------



## PollerJava (23. Okt 2007)

Hallo,

ich trau mich nochmal Fragen,

Ich habe auf meinem WebServer einen Ordner angelegt (viewpanelXML), in diesem Ordner habe ich einen Unterordner Konfigurationen angelegt und in diesem Ordner befindet sich meine XML- Datei, die ich zum Starten meiner Applikation benötige -> die XML- Datei wird mit der readStates- Methode gelesen.

Ich weiß jetzt nich , ob das so passt und wie ich meine XML- Datei in meiner viewpanelXML.jnlp angeben muss und ob ich die *.xml- Datei in ein *.jar- File geben muss.

Ich wäre sehr dankbar für hilfe, hab schon den ganzen Artikel von http://java.sun.com/products/javawebstart/1.2/docs/developersguide.html gelesen, aber wie ich eine XML- Datei bekannt gebe, steht da nicht drinnen,


(PS. Ich hab die benötigten *.jar- Dateien signiert und das funktioniert auch alles, nur di eAnwendung startet eben nicht, da die XML- Datei nicht gefunden wird)

Vielen dank,



```
states = readStates("file:///" + System.getProperty("user.dir") + "\\Konfiguration\\" + xmlDateiPfad);            //System.getProperty("user.dir") + "\\KonfigComponents.xml");             
            

<jar href="sound.jar" download="lazy"/>       // wie muss ich die xml- Datei angeben?
<nativelib href="lib/windows/corelib.jar"/>
<property name="key" value="overwritten"/>
```


----------



## PollerJava (24. Okt 2007)

Hat da eigentlich noch niemand benötigt oder ist die Frage nicht berechtigt oder kennt sich bei meiner Fragestellung niemand aus??

lg


----------



## Wildcard (24. Okt 2007)

PollerJava hat gesagt.:
			
		

> Ich habe auf meinem WebServer einen Ordner angelegt (viewpanelXML), in diesem Ordner habe ich einen Unterordner Konfigurationen angelegt und in diesem Ordner befindet sich meine XML- Datei, die ich zum Starten meiner Applikation benötige -> die XML- Datei wird mit der readStates- Methode gelesen.
> 
> Ich weiß jetzt nich , ob das so passt und wie ich meine XML- Datei in meiner viewpanelXML.jnlp angeben muss und ob ich die *.xml- Datei in ein *.jar- File geben muss.


Das eine Webstart Anwendung auf dem Client und nicht auf dem Server läuft ist die aber bekannt, oder?  ???:L 
Pack die XML doch einfach ins jar.


----------



## PollerJava (24. Okt 2007)

Vielen Dank, ich probier gerade, dass ichs mit NetBeans hinbekomme aber ich bekomme bei meiner Applikation folgenden Fehler:


```
java.security.AccessControlException: access denied (java.util.PropertyPermission user.dir read)
```

Ich benötige für meine Java- Applikation auch eine *.dll und eine *exe (für den Browser jdic)) und weiß überhaupt nicht wasx ich mit der beim webstart machen muss??

Weiß jemand, was ich da machen muss?

VIELEN Dank!!


----------



## tuxedo (24. Okt 2007)

Wie wär's mir google benutzen:

http://www.google.de/search?hl=de&q=java+webstart+PropertyPermission+&meta=

Und/Oder Handbuch benutzen:
http://java.sun.com/products/javawebstart/developers.html -> http://java.sun.com/javase/6/docs/technotes/guides/javaws/developersguide/contents.html -> http://java.sun.com/javase/6/docs/technotes/guides/javaws/developersguide/development.html#security


----------



## PollerJava (24. Okt 2007)

JA ich hab schon sehr viel über webstart gelesen, was ich eben mit google gefunden habe aber es steht eben nirgends, wie ich xml dateien bekanntgeben, wie ich benötigte exe und dll Files bekannt gebe. Ich kann meine Applikation runterladen, ausführen -> dann kommt das Login- Fenster und wenn ich nach den richtigen Eingaben auf OK drücke, kommt nichts mehr,
Ew wird kein Fehler ausgegeben (wo auch bei webstart) noch sonstwas.

Keine Ahnung was ich machen soll,

lg


----------



## tuxedo (24. Okt 2007)

Ich wette du hast dir den letzten Link den ich gepostet habe nicht angesehen oder nur zu grob überflogen?!


----------



## PollerJava (24. Okt 2007)

Mags vielleicht jemand probieren? es geht einfach nicht,

Hab ich durchgelese, mein problem ist halt, nach dem Login Fenster kommt nichts mehr, ich habs schon in der DOSBox mit javaws probiert, mit Netbeans, und über einen WebServer -> überall das gleiche Verhalten,

Keine Ahnung wieso,
Mit anderen Applikationen funktionierts wunderbar, die lesen halt von keiner XML- Datei ein und deshalb glaube ich, dass es an dem liegt!!?

lg


----------



## tuxedo (24. Okt 2007)

Wo hast du denn zur Zeit deine XML? Und was steht da so tolles drin? Du musst die XML auf jeden Fall mit der JAR ausliefern (am besten da mit reinpacken). 

BTW: Files aus einer JAR werden etwas anders eingelesen als Files außerhalb einer JAR


----------



## PollerJava (24. Okt 2007)

```
states = readStates("file:///" + System.getProperty("user.dir") + "\\Konfiguration\\KonfigComponents.xml");
```

genau da liegt das übel oben, wenn ich die Zeile auskommentiere, vollen Zugriff habe (
<security>
<all-permissions/>
</security>
)
und alle jar- Files signiert habe, dann macht sich das Fenster auf, wenn ich die Zeile oben nicht auskommentiere, dann macht sich gar nichts auf.

Wenn ich mein Programm "normal" starte, dann hol ich mir die Konfigurationen eben so wie oben und ich hab jetzt eben keine Ahnug, wie ich entweder das "user.dir" vermeiden kann (das mag er ja offensichtlich nicht) oder wo ich die XML- Datei hingeben soll bzw wie ich das mchen könnte,

Wäre Dir sehr dankbar für Hilfe, bin schon halb am verzweifeln,

Vielen Dank


----------



## tuxedo (24. Okt 2007)

Mach doch mal ne Abfrage rein die irgendwie/irgendwo signalisiert ob die File dort auch existiert. 

Ich glaub nämlich dass die da nicht liegt. Wenn du die XML in der JAR drin hast, dann kannst du nicht via file:// drauf zugreifen.

- Alex


----------



## PollerJava (24. Okt 2007)

ja eben, wie mache ich die Anfrage? das wird ja nirgends ausgegeben, wenn ich das Ganze mit Webstart starte.
Soll ich eine datei erzeugen und dort was reinschreiben?


----------



## tuxedo (24. Okt 2007)

Du stellst dich an...  Logfiles sind was nützliches. Und zur not tut's auch ein JTextArea in einem JFrame oder so... Ein wenig kreativität sollte man schon haben. *Kopfschüttel*

Und du hast immer noch nciht verraten wo denn diese XMl File denn jetzt her kommt und ob sie in irgend einer JAR drin steckt. 

- Alex


----------



## PollerJava (24. Okt 2007)

XML- Datei steckt in keiner .jar- datei drinnen,
Ich arbeite mit Netbeans und habe mir dort im Projektordner eben einen Ordner Konfiguration angelegt und da steckt die xml- Datei drinnen,


----------



## tuxedo (24. Okt 2007)

Na und woher soll der Rechner, wenn er das Programm per Webstart runterlädt die File dann haben?


----------



## PollerJava (24. Okt 2007)

Ich habs jetzt, und zwar zeigt System.properties auf:::


```
C:\Programme\Java\jdk1.6.0\bin
```

da Netbeans den javaws con dort nimmt, 
Halleluja, jetzt gehts,
Ich muss jetzt nur noch schauen, wie ich meine Konfig in eine *.jar- Datei bringe und mit System.getProperty("user.dir") drauf zugreifen kann,

Vielen Dank für die Geduld, wenn man noch nie damit gearbeitet hat, dann ist das halt so ein Ding,

lg


----------



## PollerJava (25. Okt 2007)

Hollo nochmal,

hab eh schon ein schlechtes Gewissen wegen meinen Fragen!!.

Mein Programm startet jetzt mit webstart (aus dem Programm NETBEANS heraus), ich habe aber, wie oben schon geschrieben, meine .xml, .dll und .exe in den Ordner C:\Programme\Java\jdk1.6.0\bin kopiert, da sich dort javaws befindet, ich in meinem Programm System.getProperty("user.dir") verwende und System.getProperty("user.dir") eben auf C:\Programme\Java\jdk1.6.0\bin zeigt.

Meine Frage wäre jetzt wieder mal, wie ich es machen kann, dass ich alles in der *.jnlp- Datei habe,
Soll ich statt System.getProperty("user.dir") den absoluten Pfad angeben oder wie könnte ich das machen?

Wenn mein Programm über WebStart gestartet wurde, möchte ich eine Verbindung über die COM1 zu einem anderen Computer aufbauen, nur das geht nicht. 
Weiß vielleicht jemand wieso? Wahrscheinlich, weil ich lokal auf den Computer zugreife oder so, ich hab alle *.jar- Files für die Kommunikation über die serielle Schnittstelle einbezogen und auch signiert.

```
SerialPort serialPort = (SerialPort) portId.open("COM1viewPanelXML" + portAnzahl, 3000);
```


Edit:
Das unten erlaub der webstart schon nicht mehr, hat da jemand eine Idee, was ich da machen kann?????

private Enumeration portList;
portList = CommPortIdentifier.getPortIdentifiers();



So schaut der Code für die Verbindung über die serielle Schnittstelle aus:

```
portList = CommPortIdentifier.getPortIdentifiers();
	    while (portList.hasMoreElements()) 
		{
		portId = (CommPortIdentifier) portList.nextElement();
		if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) 
		    {
		    if (portId.getName().equals(comPortName)) 
			{
			try {
                            portAnzahl++;
                            serialPort = (SerialPort) portId.open("COM1viewPanelXML" + portAnzahl, 3000);
```
Vielen Dank für Eure Antworten,

lg


----------



## tuxedo (25. Okt 2007)

Wenn du erklären würdest wie sich "geht nicht" auswirkt, dann könnte man dir vielleicht auch helfen. 

Die Sache mit der XML-File:

Wenn du dir die Mühe gemacht hättest etwas zu recherchieren, dann hättest du in diversen Webstart-Tutorials eine Lösung gefunden wie man solche Ressourcen mit einbindet. Bist ja nicht der erste der sowas vor hat.

Alles in allem wundert es mich immer wieder auf's neue wie Oberflächlich du dich mit der jeweiligen Materie beschäftigst. Um's lesen von Anleitungen und Howto's kommt man in der Regel nicht drum rum, außer man hangelt sich mit einer Frage nach der anderen bis zum Ziel durch. Doch stellt sich dann die Frage: Wäre es nicht einfacher und vielleicht schneller sich selbst dem Problem anzunehmen? Nun ja, ich weiße vom Thema ab ...

*back to topic*


----------



## PollerJava (25. Okt 2007)

zu geht nicht:  naja nach portList = CommPortIdentifier.getPortIdentifiers(); gehts nicht mehr weiter, es kommt gar nichts, ich mache ein JFrame auf und schreibe einen Text rein, vor CommPortIdentifier.getPortIdentifiers(); steht der Text drinnen, nach CommPortIdentifier.getPortIdentifiers(); steht kein Text drinnen, daher ist mein Schluss, das CommPortIdentifier.getPortIdentifiers(); nicht funktioniert,


ich recherchiere auch sehr viel (z.B.: http://lopica.sourceforge.net/faq.html )nur den richtigen Blick für manche Themen hab ich nicht, da hast Du sicher recht,
Tut mir leid, ich bemühe mich aber,

Das mit dem Einbinden der dlls, exe und xmls ist mir überhaupt nicht klar und ich hab auch noch nichts gefunden, wo ich das rausbekommen könnte.
Mir ist nicht klar, ob ich für die exe,xml und dlls etwas in die *.jnlp- Datei schreiben muss oder ob ich die Dateien nur in eine *.jar Datei hineinkopiere oder ob ich eine eigenen jar- Datei für die exe, dll, xml- dateien mache,


----------



## tuxedo (25. Okt 2007)

Ich bin mir sicher dass da irgendwo eine Exception oder sowas ausgelöst wird. Und es ist nahezu eine leichtigkeit ein vernünftiges Logging in die Applikation zu integrieren, welches dann auch mit Webstart die Informationen zu Tage bringt. 

In manchen Fällen macht es sinn, im offiziellen Dokument zu Webstart nachzuschlagem, statt eine externe FAQ zu bemühen.

Ich geb dir jetzt mit absicht nicht den Link, der dir verrät wie man extrene Ressourcen aus JAR-Files rauszieht. Ich sag dir nur eins:

Im Webstart Developers Guide, findest du im Kapitel "Application Development Considerations" ein Beispiel, wie man solche Resource-Files wie deine XML aus einer JAR File rauszieht und in der Anwendung verwendet.

In der gleichen Anleitung findest du auch einen Abschnitt der aufzeigt wie man Webstart beibringt, weitere JAR-Files parallel zum Programm-JAR-File runterzuladen.

Nimmt man diese beiden Informationen zusammen, hast du die Sache quasi schon gelöst. Hier und da gibts vielleicht noch eine SecurityException, aber die solltest du mit dem gleichen Handbuch auch gelöst bekommen.


- Alex

P.S. Den Link zur Anleitung hatte ich übrigens schon gepostet. Du hättest da nur mal drin Blättern müssen...


----------



## PollerJava (25. Okt 2007)

Vielen Dank, ich versteh halt schon "die XML- Datei aus dem jar rauszieht" nicht was Du da meinst,

Ich werd mir den Developer Guid mal durchlesen, vielleicht weiß ich dann wies geht.

lg


----------



## tuxedo (25. Okt 2007)

Ich muss dazu sagen:

Ich hab mich vorher auch nicht mit Webstart beschäftigt. Dennoch hab ich binnen Minuten die Lösung gefunden (hab sie nicht getestet, bin mir aber sicher dass es die (bzw. eine) richtige Lösung ist).

Da stellt sich mir die Frage:

Bin ich so ein Crack dass ich das gleich finde, oder bist du nur zu oberflächlich bei der Suche ... ?!


----------



## PollerJava (25. Okt 2007)

naja, da wird beides richtig sein und Du hast sicher mehr Erfahrung aber ich bin am arbeiten ,

lg


----------



## tuxedo (25. Okt 2007)

PollerJava hat gesagt.:
			
		

> aber ich bin am arbeiten



Ist das jetzt eine Aussage wie "Ich arbeite an meiner Erfahrung" oder ist das eine Ausrede wie "ich muss arbeiten" ?


----------



## PollerJava (25. Okt 2007)

ich werde mich verbessern, es fehlt halt die Zeit (von mir aus nicht aber vom arbeitgeber), der kennt sich mit Java nicht aus und will alles sofort, das ist meine Schwierigkeit, aber wo ist das nicht so!


----------



## tuxedo (25. Okt 2007)

Wo ist das denn nicht so? War im Studium auch nicht anders. Okay, die Profs haben sich shcon ausgekannt, haben aber selten was verraten. Die haben eher das "learning by doing" gefördert...


----------



## PollerJava (25. Okt 2007)

Ja stimmt,

Ich hab mir jetzt "Retrieving Resources from JAR files" durchgelesen und das heißt also, dass ich in meinem Code umschrieben muss, oder hab ich da was falsch verstanden?



```
ClassLoader cl = this.getClass().getClassLoader();
   Icon saveIcon  = new ImageIcon(cl.getResource("images/save.gif"));
   Icon cutIcon   = new ImageIcon(cl.getResource("images/cut.gif"));
```


----------



## tuxedo (25. Okt 2007)

Jepp. Du musst da n bisschen was anders machen. Die XML kannst du nicht wie normal einlesen. Ob und wie das bei deiner XML funktioniert (da hängt vermutlich noch JDOM oder sowas dahinter) weiß ich nicht. Musst du halt mal gucken wie die eine XML als "Resource" laden kannst statt wie normal aus dem Dateisystem.

- Alex


----------



## PollerJava (25. Okt 2007)

Super, ich habs jetzt,
Ich kann meine XML- Datei einlesen, aber die Problem werden nicht weniger. 
Ich habe eine JTree, bei dem ich vor dem Text Icon setzen will (unten der Code), mein Frame startet, aber leider hängt sich das Programm dann auf, da wahrscheinlich immer die Methode getTreeCellRendererComponent aufgerufen wird.
Weiß da jemand eine abhilfe,

Vielen Dank

lg


```
public Component getTreeCellRendererComponent(JTree tree1, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus) 
        {
        super.getTreeCellRendererComponent(tree1, value, sel, expanded, leaf, row, hasFocus);
        for (int i = 0; i < Control.getStatesSize(); i++)
            { 
            if (Control.getStatesElementAt(i).getElementName().equals(value.toString()) || Control.getStatesElementAt(i).getElementName().replace("
", "").equals(value.toString()))
                {                
                setIcon(new ImageIcon(cl.getResource("pics/icon/" + Control.getStatesElementAt(i).getIconTree())));
                //setIcon(new ImageIcon(System.getProperty("user.dir") + "\\pics\\icon\\" + Control.getStatesElementAt(i).getIconTree()));
                }                
         /*   if (value instanceof TreeNode && Control.getStatesElementAt(i).getElementNr() == ((TreeNode)value).getID())
                {
                setIcon(new ImageIcon(System.getProperty("user.dir") + "\\pics\\" + Control.getStatesElementAt(i).getIconTree()));
                } */
            }         
        tree1.setFont(getCellFont());        
        return this;
        }
```


----------



## PollerJava (25. Okt 2007)

So ich habs geschafft,

Vielen Dank Für Deine Hilfe!!!!!!


lg


----------



## tuxedo (25. Okt 2007)

Wo war jetzt mit dem CellRenderer das Problem?

- Alex


----------



## PollerJava (25. Okt 2007)

Er hat die Bilder nicht gefunden und hat sich aufgehängt,

einmal öfter signieren und kompilieren als notwendig hilft oft ungemein, da bin ich schon draufgekommen´,

jetzt läufts super


----------

