# Applikation sich selbst neu starten lassen



## PAX (12. Jan 2009)

Guten Abend.

Meine Applikation (gepackt in JAR) soll sich auf Zuruf selbst neu starten. Dazu muss ich aber ihren genauen Pfad und den momentanen Dateinamen der JAR (beide unbekannt) wissen (ermitteln lassen können).

Ich dachte zunächst an folgenden Ansatz, der allerdings nicht herausfindet, wie die JAR-Datei heißt:


```
new AppStarter().getClass().getResource("AppStarter.class").getPath())
```

Auch


```
System.getProperty("user.dir")
```

hilft mir nicht weiter und soll angeblich nicht unbedingt gezwungenermaßen dem Programmpfad entsprechen.

Lange Rede, kurzer Sinn - Wie kann eine JAR-gepackte Java-Anwendung sich selbst neu starten?


Beste Grüße


Onkel PAX


----------



## The_S (13. Jan 2009)

Forensuche verwenden! Genau die selbe Frage gab es gestern schon mal und wurde auch schon x-mal im Forum besprochen!


----------



## PAX (13. Jan 2009)

Das sind genau die Sorte von Spezialantworten in Foren, von denen ich absolut nichts halte. :? 

Ich hab so einiges Zeug über Google gefunden, aber das bringt mir alles nichts. Eine Möglichkeit wäre, keinen wirklich reelen Neustart durchzuführen, sondern einfach die Applikation neu initialisieren zu lassen. Die andere wäre es, den Neustart über eine Batch-Datei zu regeln. Dafür musste aber die Anwendung an sich von Anfang an schon mit der Batch immer gestartet werden. Das kommt in meinem Fall auch nicht in Frage.

Aber ich seh schon, Hobbit... Du willst nicht.  :bloed: 


PAX


----------



## The_S (14. Jan 2009)

Pax hat gesagt.:
			
		

> Ich hab so einiges Zeug über Google gefunden



Lesen will gelernt sein:



			
				Hobbit_im_Blutrausch hat gesagt.:
			
		

> Forensuche verwenden!





			
				Pax hat gesagt.:
			
		

> Aber ich seh schon, Hobbit... Du willst nicht.



Es tut mir leid, dass wir hier keine kommerzielle Vereinigung sind, für die du einen Monatsbetrag bezahlst, damit du schnelle und bis ins kleinste Detail ausgearbeitete Lösungsvorschläge bekommst.

Ich weiß nicht, was sich manch einer unter einem Forum vorstellt, aber das hier ist ein KOSTENLOSER DIENST, der nur durch den freiwillige Einsatz von Java-Interessierten zu stande kommt. Du hast keinerlei Anspruch darauf, dass dir geholfen wird und wie dir geholfen wird.

Stell dir mal vor, du bist (als Kunde) in der Bibliothek, liest gerade ein Buch, und bekommst zufällig mit, dass ein völlig Fremder ein bestimmtes Buch sucht, welches du zufällig vor einiger Zeit selbst in dieser Bibliothek in den Händen gehalten hast. Freundlich wie du bist, gehst du zu ihm hin, und sagst, dass er das Buch in der Abteilung XYZ (Dein Suchbegriff) im Untergeschoss (Die Forensuche) findet. Du kämst dir bestimmt auch dumm vor, wenn dieser Fremde dann beleidigt ist, weil du nicht selbst aufopfernd ins Untergeschoss und in die Abteilung XYZ gehst, und ihm das Buch holst, oder!?

Ich habe dich lediglich darauf hingewiesen, dass das Thema (Wie komme ich an den Pfad eines JARs) schon öffters behandelt wurde, und deshalb über die Forensuche auffindbar ist. Wenn du nicht in der Lage bist eine Suche zu bedienen, dann solltest du dich Fragen, ob programmieren wirklich der richtige Job für dich ist.

Aber ich entschuldige mich jetzt aufrichtig, dass ich gestern leider keine Zeit hatte, dir die Lösung auf dem Silbertablett zu servieren, sondern dir nur empfehlen konnte, dass du doch die Forensuche verwenden solltest.

btw: Wenn du mehr Informationen von mir erhalten hättest, dann hätte ich dazu - ebenso wie du - die Forensuche bedienen müssen ...


----------



## PAX (14. Jan 2009)

der allgemeine ton, den du hier an den tag legst, erhöht nicht gerade meinen sympathiewert zu diesem forum. und ich denke, ich bin sicherlich nicht der einzigste mensch, den es jedes mal ein müdes lächeln auf die lippen zaubert, wenn er wieder mal ein derartiges forumklima in einem weiteren der vielen foren fühlen (nachlesen) muss.
(nebenbei bemerkt: in meiner delphi-zeit damals herrschte in den gängigen großen foren ein angenehmerer umgang der benutzer untereinander. solch ein klima habe ich dann später in den foren, welche andere programmiersprachen thematisieren, leider nie mehr gesehen.)

selbst wenn in meinen augen ein benutzer etwas anspricht, was schon x-mal diskutiert wurde und er wahrscheinlich die forensuche nicht richtig verwendet hat, ist es denn dann so schwer, sich genervtes geschnotter zu sparen und ihn meinetwegen zwar auf eine forensuche hinzuweisen, ihm jedoch gleich beispielsuchergebnisse anzuzeigen, die ihm helfen könnten? denn dann ist 

der umgang untereinander sachlicher/korrekter und
eventuell kann der benutzer in seinem thread gleich die aspekte ansprechen, die die vermeindlichen suchergebnisse nicht ganz zu lösen vermögen. das wiederum impliziert,
dass weitere benutzer, die mit selbem problem möglicherweise über eine google-suche auf diesen thread stoßen, genau ihre lösung konkretisiert vorfinden und nicht nochmal nachfragen müssen.
ein forum ist nuneinmal zum gegenseiten helfen und lösen von problemen da. sollte jedoch ein mitglied nur darauf warten, dass irgendjemand "wiedermal unnötigerweise" etwas altes neu erfragt, um ihm dann wieder eine groteske, überflüssige antwort zu posten, dann sollte er sich vielleicht mal überlegen, ob der umgang mit menschen (wie es in foren nunmal ab und zu vorkommt) ihm überhaupt liegt und er sich vielleicht lieber auf seine anderen stärken besinnen sollte, um nicht gefahr zu laufen, ein forenklima in den dreck zu ziehen.

tut mir leid, wenn meine worte jetzt vielleicht verletzend und laut rübergekommen sind, aber wie hieß es einst so schön aus dem munde eines philosophen unserer heutigen zeit: "nur wenn man schreit, weckt man tote auf" (stephan weidner).


----------



## The_S (14. Jan 2009)

Entschuldigung, dass ich dir mit dem Verweis auf die Forensuche helfen wollte, leider aber für weitere Ausführungen keine Zeit hatte. Wenn du nichts findest bzw. nicht weißt, wonach du suchen musst, dann frag einfach nach - ist ja kein Problem  !

Ich werde mir deinen Usernamen merken, und dir nur noch versuchen zu helfen, wenn ich gerade mal 1 Stunde aufwärts Zeit habe, mich komplett um dich zu kümmern, mein Kind ...

:roll:


----------



## PAX (14. Jan 2009)

naja... mit 2 zwei augen zugedrückt und großer tolleranzschwelle, könnte man das als eine art von entschuldigung auffassen.

danke für deinen rat (der erste absatz war zumindest sachlich). ich guck mir das nachher einmal an und melde mich nochmal eventuell mit entsprechenden lösungsansätzen, um diesem thread für die nachwelt noch einen sinn zu geben.


beste grüße


onkel PAX


----------



## The_S (14. Jan 2009)

Das war auch nicht als Entschuldigung gedacht ... Es sollte dir einfach zeigen, dass es kein Problem gewesen wäre, wenn du einfach gesagt hättest "Ich weiß nicht, nach was ich suchen soll" bzw. "Ich kann mit der Forensuche irgendwie nichts finden" - und das in einem normalen Ton. Dann hätte ich (oder jemand anderes) das Forum für dich bei Gelegenheit durchsucht. Nur zum Zeitpunkt meines Posts hatte ich dazu einfach keine *Zeit* (das hat mit kein Bock nichts zu tun).


----------



## Vayu (14. Jan 2009)

ehrlich gesagt PAX verstehe ich dein Problem nicht, Hobbit war nicht unfreundlich. Er hat dich drauf hingewiesen, dass genau das Problem über die Forensuche zu finden sei.

Statt auf diese Antwort nen schnoddrigen post zu verfassen, in dem du dieses Forum als unfreundlich bezeichnest hättest deine Antwort schon längst über die Forensuche finden können ...

Entschuldigt hätte ich mich dafür auch nicht, was Hobbit ja auch nicht getan hat.


----------



## babuschka (14. Jan 2009)

Hallo,

vielleicht hilft Dir das hier weiter:

wenn ich (Windows Vista x64) eine Jar mit folgendem Code:

```
getClass().getClassLoader().getResource("Package/zur/Klasse/Klassenname.class").getFile();
```
aufrufe, so bekomme ich folgende Ausgabe:

```
java -jar C:\\Test.jar
file:/Ornderstruktur/Test.jar!/test/Test.class
```
Aus dieser kann man sich nun mit wenig Aufwand den Namen der Jar heraussuchen.
Dann kann die JVM durch den Aufruf von exec() der Klasse Runtime mit dem oben herausgefundenen Jar gestartet werden. Nicht vergessen, die aktuelle Instanz der JVM zu beenden!

Ob das auch auf anderen Betriebssystemen so läuft kann ich nicht beantworten, ich selbst habe es noch nie in meinen Programmen verwendet.
Außerdem frage ich mich, warum die Anwendung unbedingt neu gestartet werden muss. Vielleicht gibt es hierfür auch eine elegantere Methode?

Gruß,

Maximilian W


----------



## NTB (14. Jan 2009)

Ich würde mir dafür einen Loader schreiben, der kann dann die eigentlich Anwendung so oft neu starten, wie er lustig ist. Ideen dazu findest Du auch über die Suche. 
Ich würde dazu nach "Loader" oder "Update" suchen. Die Suche findest Du oben im Menu. Musst Du drauf klicken...


----------



## PAX (14. Jan 2009)

ich danke dir, maximilian!

ich dachte daran, die applikation mit folgender methode zu starten:

```
System.setOut(new PrintStream(new FileOutputStream(FileDescriptor.out), false, "Cp850"));
                Runtime.getRuntime().exec(path);
```

path enthält den extrahierten pfad zur jar. das setzen der zeichenkodierung hatte ich wegen unterer fehlermeldung hinzugefügt:


```
java.io.IOException: Cannot run program "C:/Dokumente%20und%20Einstellungen/Andr
eas%20L%c3%bcck/Desktop/RW-Freigabe/WinAmpRemote.jar": CreateProcess error=3, Da
s System kann den angegebenen Pfad nicht finden
```

aber es liegt wohl in erster linie daran, dass die konsole mit dieser url-schreibweise nicht klar kommt. "%20" etc. müssen weg. allerdings sind im pfad auch umlaute, weshalb die windowscodierung vielleicht noch notwendig wird. es werde jetzt nochmal zusehen, den rohen pfad zu bekommen und melde mich dann nochmal.


@ntb

klingt interessant. aber was meinst du mit "suche" (was ja offensichtlich ein nicht weit verbreitetes fremdwort ist)? das musst du mir nochmal erklären.


beste grüße


onkel PAX


----------



## Oli (14. Jan 2009)

Hallo PAX,

ich hatte gestern das selbe Problem und Hobbit hat mich auf die Forensuche verwiesen. Das hat auch geklappt und nach kurzem Suchen habe ich das gewünschte gefunden.
Ich weiss nicht, was du für ein Problem mit diesem Forum hast, ich kann nicht erkennen wo sich Hobbit oder die anderen im Ton vergriffen haben sollten.
Ein bisschen Eigeninititive darf man schon erwarten, denke ich.

Nix für ungut...

Oli


----------



## michael 89 (14. Jan 2009)

Also jetzt schalte ich mich mal ein.

Willst du Hilfe, oder willst du einen der dir das programmiert?????

ich kann von meiner Erfahrung hier nur sagen, das wenn man hilfe braucht, bekanntlich auch welche bekommt.
Auf irgend eine art und weise.

und "Hobbit_Im_Blutrausch" hat dir die Hilfe gegeben und du Dankst seine Hilfe mit Frechheit (Undank ist der Welten lohn).

aber wenn du fragt, wie geht das, oder hat jemand Code für Dich (Eine Fertige Lösung).
Dann denke ich auch, das Programmieren nichts für Dich ist, dann gehörst du zu denen die Basteln und nicht Programmieren.

Dann stellst Du besser die Fragen so um z.B:* "Ich bastele mir ein Programm und es fehlt mir noch ein wenig Code hat da jemand was, das ich gebrauchen kann????"* 

so genug der Worte.

Gruß Michael


----------



## PAX (14. Jan 2009)

das ist falsch!
bevor ich überhaupt hier im forum eine frage stelle, muss ich generell erstmal schon nicht weiterkommen. selbstverständlich hatte ich, wie gesagt, schon einige lösungsideen gefunden (applikation nicht neu starten sondern neu initialisieren; applikation über batch-datei starten, die dann je nach rückgabewert terminiert oder app erneut startet). aber die passen mir alle nicht.
und dann wende ich mich, nichts böses ahnend, gutmütig wie ich bin :lol: , an ein forum und darf gemeinsam mit euch über mein vergehen herumphilosophieren. nagut, das könnte man vielleicht als eine art ausgleich zum programmieren sehen, aber letztendlich möchte ich dann doch gerne voran kommen.

so, und jetzt stellt sich mir wieder eine frage zur thematik, habe mir natürlich angeguckt, was ihr bisher darüber geschrieben habt und herausgefunden, dass zumindest die konsolenausgabe bei umlauten korrekt funktioniert, wenn man folgende kodierung in der form setzt:

```
System.setOut(new PrintStream(new FileOutputStream(FileDescriptor.out), false, "Cp850"));
```

leider weiß ich nicht, wie ich den eingabestrom auf selbige kodierung setzen kann (wenn das überhaupt etwas nützt).


----------



## Oli (14. Jan 2009)

Also wenns nur darum geht die %20 wegzubekommen:

path = path.replace("%20"," ");

Grüße Oli


----------



## PAX (14. Jan 2009)

Oli hat gesagt.:
			
		

> Also wenns nur darum geht die %20 wegzubekommen:
> 
> path = path.replace("%20"," ");
> 
> Grüße Oli



nee, ich kenne den pfad vorher nicht. da können durchaus auch umlaute und ß drin sein. ich wollte es so versuchen:

```
File url = new File(path);
                path = URLDecoder.decode(url.getPath(), "UTF-8");
```

doch der ProcessBuilder wirft eine exception. offenbar liegts daran, dass das "ü" im pfad zu "³" konvertiert wurde. nehme ich als kodierung anstelle von UTF-8 das Cp850, dann macht er aus "ü" die zwei zeichen "??". es ist schlimm mit diesem zeichenkodierungsmist!


----------



## NTB (14. Jan 2009)

Kannst Du nochmal erklären, was Du überhaupt vor hast?

Um was für eine Anwendung handelt es sich? Wieso muss sie sich selbst neu starten? Wieso weißt Du den Pfad nicht bzw warum musst Du ihn überhaupt wissen? Was ist das Ziel?


----------



## PAX (14. Jan 2009)

NTB hat gesagt.:
			
		

> Kannst Du nochmal erklären, was Du überhaupt vor hast?
> 
> Um was für eine Anwendung handelt es sich? Wieso muss sie sich selbst neu starten? Wieso weißt Du den Pfad nicht bzw warum musst Du ihn überhaupt wissen? Was ist das Ziel?



es handelt sich um eine server-applikation, die der vollständigkeit halber auch zu einem "richtigen" neustart gezwungen werden kann. ich denke nicht, dass ein derartiger programmierfehler vorhanden ist, aber falls da mal irgendwas nicht mehr ganz rund laufen sollte, zum beispiel dass wichtige threads, die eigentlich niemals enden sollten, terminiert sind oder irgendwelche threads seltsamerweise nicht mehr terminierten, obwohl sie es sollten und es immer mehr von ihnen werden, dann soll ein reeller neustart möglich sein.
den genauen pfad/dateinamen der jar möchte ich nicht festlegen, da der jeweilige benutzer die jederzeit geändert haben könnte und ich ihn nicht unbedingt zwingen möchte, dies ständig in einer property-datei festzulegen.

meine idee war es, den pfad/dateinamen von der anwendung immer direkt vor ort ermitteln zu lassen und gegebenfalls sich auf zuruf selbst zu starten und zu beenden (also den alten prozess zu beenden).

nun habe ich zumindest schonmal den pfad. jedoch scheiterts an der zeichenkodierung bei umlauten. die applikation läuft diesmal sowieso nur ausschließlich auf windows-systemen.


----------



## NTB (14. Jan 2009)

ok, wenn also alles in Deinen Händen liegt, würde ich die Variante mit dem Loader fahren. 
Dann hast Du auch die Möglichkeit, eine automatische Updatefunktion einzubauen.

Und Du musst nichtmehr dieses merkwürdige Geraffel mit dem Pfad machen. Das ist glaube ich eher der hölzerne Weg.


----------



## PAX (14. Jan 2009)

NTB hat gesagt.:
			
		

> ok, wenn also alles in Deinen Händen liegt, würde ich die Variante mit dem Loader fahren.
> Dann hast Du auch die Möglichkeit, eine automatische Updatefunktion einzubauen.
> 
> Und Du musst nichtmehr dieses merkwürdige Geraffel mit dem Pfad machen. Das ist glaube ich eher der hölzerne Weg.



ok, also wenn ich das richtig verstanden habe, dann führt eine starterklasse (loader) die serverklasse auf folgendem wege aus:


```
Runtime.getRuntime().exec("java Klasse");
```


ähm, aber es geht ja in der starterklasse weiter im takt, die hält ja nicht an. mir ist auch nicht ganz klar, wie ein ausführen durch diese methode funktioniert, wenn die klasse in einem anderen paket liegt. ich habs bei der paketangabe mit punkt und mit schrägstrich probiert (klappt beides nicht).

also nur, dass wir uns richtig verstehen: ich möchte auf keinen fall das über 2 jars machen, also sodass die eine jar (der loader) die andere startet. es soll wirklich nur diese eine jar geben.


----------



## PAX (14. Jan 2009)

da habe ich einmal eine frage:

gesetzt den fall, ich lade die klasse mit dem standard-classloader:


```
server.ServerApp o = (ServerApp) ClassLoader.getSystemClassLoader().loadClass("server.ServerApp").newInstance();
            o.main(args);
```

und hole mir für einen neustart einfach eine neue instanz mit dem classloader,
werden dann auch alle alten resourcen der serverklasse freigegeben? das heißt, werden alle daemon-threads automatisch beendet und auch alle statischen attribute der serverklasse neu gesetzt (wird auch ein eventueller statischer konstruktor neu ausgeführt?)?


----------



## PAX (18. Jan 2009)

*Hier eine (leider nicht plattformunabhängige) Lösung:*

Nocheinmal zusammengefasst, wie man an den (unbekannten) Pfad zur gerade ausgeführten JAR kommt:


```
String path = new ServerApp().getClass().getClassLoader().getResource("server/ServerApp.class").getFile();
                path = path.substring("file:/".length(), path.indexOf("!/server/ServerApp.class"));
                File url = new File(path);
                path = URLDecoder.decode(url.getPath(), "UTF-8");
```
Wird der URLDecoder nicht beansprucht, gibts leider Probleme mit Umlauten im Pfad.
Des weiteren sei erwähnt, dass der Wert, mit dem die Variable "path" initialisiert wird, anders aussieht, wenn der Code aus Eclipse heraus ausgeführt wird und nicht als gepackte JAR-Datei. In solch einem Fall kommts zu einer Exception, weil er bei seiner Bereinigung in der 2. Zeile nicht "wie erwartet" aufgebaut ist.


```
ProcessBuilder exe = new ProcessBuilder("rundll32",
                        "shell32.dll,ShellExec_RunDLL",
                        System.getProperty("java.home")
                        + "\\bin\\javaw", "-jar", path, "server");
                exe.start();
                System.exit(0);
```
Der ProcessBuilder arbeitet nicht asynchron. Das heißt, führt er einen externen Prozess aus (zum Beispiel direkt eine JAR-Datei), dann hält die Java-Applikation an der Ausführungsstelle so lange, bis der externe Prozess terminiert ist. Das ist dann problematisch, da System.exit(0) so lange nicht erreicht wird, was das ganze ziemlich sinnfrei macht. Abhilfe schafft an dieser Stelle, den gewünschten Prozess mit Hilfe einer Ausführungsbibliothek von Windows zu startet. Sobald diese die jeweilge JAR ausgeführt hat, terminiert sie und somit gehts auch im aufrufenden Programm weiter im Takt.
Ich habe dies lediglich auf Windows XP testen können. Sollte jemand die Tauglichkeit auch auf anderen Windows-Plattformen verifizieren können, wäre ein Feedback nett.


----------



## simon1389 (15. Dez 2011)

Hallo,
der Thread ist zwar schon bisschen älter, allerdings habe ich auch gerade nach einer Möglichkeit gesucht, ein Java-Programm sich einfach selbst neustarten zu lassen.
Ich hab nicht ganz genau verstanden wie der Threadstarter das gemeint hat, allerdings hab ich rausgefunden, dass die jar die sich selbst neustarten soll, einfach über den Aufruf


```
try {
   Runtime.getRuntime().exec("java -jar locsi.jar");
   } catch (IOException e1) {
      e1.printStackTrace();
   }
   System.exit(0);
}
```

neugestartet werden kann... in meinem Fall heißt die jar halt "locsi.jar"

Evtl hilft das ja jemandem der ähnliches versucht ;-)


----------



## irgendjemand (15. Dez 2011)

@simon1389
ich hoffe du liest das hier noch irgendwann

"java -jar name.jar"

ist VERDAMMT unsicher und kann schon bei abweichung um einen pfad-teil probleme geben ...
was meinst du warum hier fieberhaft versucht wurde den ABSOLUTEN pfad zum JAR zu bestimmen ?

ich hatte ne zeit lang auch mal mit Class.getResource() gespielt ... jedoch ergibt das unter XP , Vista und 7 ziemlich schwere fehler wenn leerzeichen und umlaute im pfad enthalten sind da daraus dann selbst mit einem URLDecoder nicht mehr der originale pfad-name wiederhergestellt werden kann ...

zur zeit spiele ich viel mit einem einfachen


```
File file=new File(".");
```

rum ... und hat unter XP , Vista und 7 bis jetzt auch gute ergebnisse geliefert ... jedoch bin ich mir bisher unsicher ob das auch unter Unix / Mac funktioniert ...


wenn jemand eine "perfekte" lösung für ALLE *oder zumindest die meisten* OS hat welche ZUVERLÄSSIG zumindest den pfad zum JAR returned wäre auch ich dankbar ...

@thread
ich weis das das von den alten usern dieses threads vermutlich keiner mehr lesen wird ... aber ich fand folgendes sehr genial

*zitat TO*



> Ich dachte zunächst an folgenden Ansatz, der allerdings nicht herausfindet, wie die JAR-Datei heißt



sorry ... aber wenn es darum geht seine EIGENE app zu re-starten ... dann sollte man wissen wie das JAR heißt und der pfad sollte genügen ... andernfalls lässt sich dieser aber auch sehr einfach ermitteln ... und selbst wenn man ein "fremdes" jar damit re-start will muss man doch zumindest um dieses zu starten wissen wie es heißt ... also hier kann ich erlich gesagt nur so n bissl grinsen weil DAS ergibt für mich KEINEN sinn

*aller höchstens in einem "plug-in" system ... hier sollte jedoch ein SecurityManager den "plug-in's" die ausführung solcher anweisungen untersagen*


----------



## L-ectron-X (15. Dez 2011)

irgendjemand hat gesagt.:


> wenn jemand eine "perfekte" lösung für ALLE *oder zumindest die meisten* OS hat welche ZUVERLÄSSIG zumindest den pfad zum JAR returned wäre auch ich dankbar ...


Ich war bisher der Meinung, dass das mit

```
System.getProperty("user.dir");
```
immer noch am einfachsten geht. Und das auch Plattform übergreifend.


----------



## Empire Phoenix (15. Dez 2011)

Ich weiß wo dein fEhler mit dem encoding liegt und würde dir normalerweise helfen, aber nachdem ich gelesen habe wie du mit den anderen Leuten umgehts gebe ich dir lieber nur einen Tip als die antwort. Google mal wie die Standart encodings der betriebsysteme sind.


----------



## irgendjemand (15. Dez 2011)

@lectron
user.dir ist auch nicht sicher ...
als beispiel : bau dir mal ein jar ... und starte dies über ein terminal aus einem anderen ordner mit einem relativ pfad ... du wirst sehen : user.dir liefert dir nicht das dir in dem das jar liegt sondern das dir in dem du dich grad im terminal befindest ... daher auch nicht gerade sicher

@phönix
danke ... aber im gegensatz zu den viele anfängern hier weis ich wie man google benutzen muss ...
auch hab ich das knowhow mir zur not einen eigenen URLDecoder zu implementieren ...

warum ich trotzdem rumheule : weil ich mir den aufwand nicht machen muss aus einem pseudo-objekt mir erst eine URL zu holen ... daraus noch ein String zu machen um vorne und hinten einges wegzuschneiden ... und das dann wieder in ein File parsen ... nö ... gibt einfachere lösungen


----------

