Posts mit dem Label Java werden angezeigt. Alle Posts anzeigen
Posts mit dem Label Java werden angezeigt. Alle Posts anzeigen

Sonntag, 20. Mai 2012

Das Webservices Dilema

Ich hatte in den letzten 1,5 Wochen damit zu tun folgendes Problem zu lösen.

Durch einen nötige Änderung in einem unserer Firmen Projekte musste ich nach einer WSDL Datei einen Webservice umsetzen.
Was erst einmal ganz einfach klang wurde im nachhinein doch ein Problem für mich.

Der Webservice sollte lediglich eine Methode namens putData einbinden.
Diese Methode wird dann von einem Java Client aufgerufen.
Dieser wird von einer externen Firma entwickelt.
Diese hat und auch die WSDL Datei als Vorgabe geschickt.

Probleme bei der Umsetzungen waren leider, dass ich durch mangelndes Wissen leider den Aufbau der putData Methode nicht richtig umgesetzt hatte.
Auch kam noch hinzu, dass einige Xml Atributte noch nicht gesetzt waren.
dazu gehörten auch einige Einstellungen für Namespaces.

Diese Probleme konnte ich am Mittwoch noch mit hilfe von Google und der Einbindung der WSDL Datei in Visual Studio lösen.

Leider zeigte mir dieses Problem mal wieder, wie wenig Wissen ich noch im Bereich Webservices habe.

Ich hoffe, dass es mir zukünftig nun einfacher fallen wird Webservices richtig umzusetzen nach Vorgaben einer WSDL Datei.

Freitag, 20. Januar 2012

Netbeans ab Debian Wheezy wieder im Repository

Noch vor dem Release von Debian Squeeze wurde Netbeans aus dem Repository entfernt.
Dies war leider eine sehr schlechte Entscheidung.
Seitdem wurde das Paket netbeans-ide und netbeans-platform auch nicht mehr aktualisiert.

In Debian Wheezy ist nun bei meiner Suche nach netbeans das Paket "netbeans" aufgetaucht.
Dies stellt die Version 7.0.1 von Netbeans bereit.
Somit kann man mit Debian Wheezy, aktuell noch im Testing Statdium, wieder Netbeans verwenden.
Vor wenigen Tagen ist auch die Version 7.1 von Netbeans erschienen, weshalb man ggf. noch auf Netbeans 7.1 in Wheezy rechnen kann.

Auch das OpenJDK7 ist bereits in Debian enthalten und lief vor einer Woche bereits bei kleinen Tests ganz gut.
Der neue Garbage collector G1, der per Default aktiv ist, lief auch sehr verlässlich.

Ich werde die Tage mal etwas mit Netbeans arbeiten und mal schauen ob sich ggf. ein Umstieg von Eclipse lohnen würde.

Samstag, 30. Juli 2011

Java 7 ist fertig

Eine Nachricht die man fast schon als running gag bezeichnen könnte.
Aber nach 4 Jahren Entwicklungszeit hat Oracle es durch die Aufteilung der Planung für das JDK geschafft die Version 7 fertig zu stellen.

Insgesamt gibt es durch das Project Coin kleine Sprachänderungen.
So ist es endlich möglich String anstelle einer Verkettung von if/else if/else durch ein switch zu schicken.
Diese Funktion ist eine erhebliche Erleichterung für die Arbeit mit Strings.

Auch weitere Funktionen und Sprachänderungen kamen hinzu.
So besitzt Java 7 mit NIO 2 endliche eine Klasse mit statischen Methoden zur Verarbeitung von Dateien.
Sowas hätte ich in Java 6 bereits gebrauchen können.
Auch ist es endlich möglich, über diese neue File Klasse, mit symbolischen Links zu arbeiten.
Diese Funktion kann ich in jsync endlich gebrauchen.
Dort folgt Java dem symbolischen Link und kopiert entsprechend die Dateien in das Zielverzeichnis, was ja eigentlich nicht gewünscht ist.

Ich werden in nächster Zeit, wenn ich dazu komme, eine Java 7 Version von jsync anlegen.

Vorher wird aber noch kräftig aufgeräumt, da einiges an Altlasten endlich verschwinden muss.
Auch ein paar Optimierungen am Code dürften nicht schaden.

Montag, 4. Juli 2011

jsync optimiert

Da ich in letzter Zeit wieder etwas in jsync aufräumen wollte, habe ich in den letzten Tagen mal mit dem Haus putz angefangen.
Als erstes hab ich mal die interne Verwaltung der Pfade optimiert.

Dies hat den Speicherverbrauch zwar leicht nach oben gedrückt, hilft aber für sauberen Code als vorher.
Im Gegensatz zum alten Code wird der Speicherverbrauch aber nicht über ein gewisses Limit gepuscht.
Grund dafür ist, dass intern nur noch die Ordner gespeichert werden.
Die Verarbeitung der Dateien erfolgt dann erst wenn eine bestimmte Ordner Ebene erreicht wird.

Auch ein paar Optionen wie die SleepTime der Threads werde ich wohl rauswerfen.
Hier wird im Code eine default Zeit von 1 Millisekunde eingetragen.
Auch andere Optionen werden wohl rausfliegen um die Konfiguration wieder sinnvoll zu gestalten.

Dienstag, 21. Juni 2011

Netzwerk Programmierung mit Sockets

Da ich schon seit einiger Zeit mich mit dem Thema der Netzwerkprogrammierung beschäftigen wollte, habe ich mir mal die Zeit genommen und habe dieses Thema mit C# begonnen.

Dazu habe ich erst einmal eine kleine Konsolenanwendung gebaut die per Parameter zwischen Client und Server umschaltet.

Als Daten wird dort nur der String "Testdaten" hingesendet, vom Server ausgegeben und zum Client zurück geschickt.
Dieser gibt dann die Antwort vom Server ebenfalls aus.

Ist nur eine kleine Spielerei aber trotzdem ein kleiner Anfang.
Ich habe dies ebenfall mit Java mal umgesetzt, da ich dort auch mal die Erfahrungen sammelt wollte.

Beide Programmiersprachen haben fast die selben Klassen, was die Umsetzung auch sehr einfach macht.

Vielleicht kann ich ja in Zukunft mal ein kleines Tool bauen, was über das Netzwerk Daten versenden und empfangen kann :)
Wenn ich eine gute Idee habe, werde ich diese mal versuchen umzusetzen.

Freitag, 18. März 2011

Aufräumarbeiten bei jsync

Da ich bei jsync seit einiger Zeit eine gewisse Überladung der Optionen habe, habe ich damit begonnen dort mal aufzuräumen.
Einige Optionen sind bereits verschwunden.
Die Funktionalität dahinter ist entweder entfernt oder zum normalen Ablauf hinzugefügt worden.

Ebenfalls mache ich noch ein paar Optimierungen und versuche noch an der einen oder anderen Stelle zu optimieren.

In nächster Zeit werde ich dann wieder einen Release zusammen schnürren und  nach einem ordentlichen Test freigeben.
Der letzte Release ist auch schon eine lange Zeit her, weshalb eine Aktualisierung und auch die Häufigkeit wirklich erhöht werden sollte.

Samstag, 26. Februar 2011

jsync Umstellungen

Nachdem ich in letzter Zeit nur wenig an jsync arbeite, habe ich mit in den letzten Tagen mal wieder die Zeit genommen um ein paar Anpassungen zu machen.

Ich werde in der nächsten Zeit einige Optionen überarbeiten.
Die Option für erweitertes loggen ist bereits etwas angepasst.
So wird zukünftig VerboseInformations aus der jsync.conf verschwinden.
Diese Option wird dann nur noch für Debugging verwendet.
Per Parameter -D, --debug oder /debug wird dies dann aktiviert.
Ich werde mal schauen was noch umgestellt und ggf. als Parameter ausgegliedert werden kann.

Ansonsten versuche ich noch ein paar Optimierungen um die Ausführungsgeschwindigkeit noch weiter zu verbessern.

Leider ist Java durch seine schier endlose Liste an Parametern für die VM und den GC nicht gerade einfach zu optimieren.
Und mit dem ersten Testkandidaten des JDK 7, dass vor einigen Tagen freigegeben wurde, wird es wahrscheinlich nicht besser.

Samstag, 11. Dezember 2010

Java bald am Ende?

Ich habe in den letzten Wochen mal die Situation rund um Java im Auge behalten.
Leider durfte ich mit der Abstimmung im JCP über Java SE 7 und 8 feststellen, was aus dem ganzen geworden ist.

Die Idee hinter dem Java Community Process ist es eigentlich Java eine offene Entwicklung zu bringen.

In JCP werden alle Java Specification Requests(JSP) überprüft und bei bestehen auch in Java übernommen.
Leider ist dieser Prozess in der letzten Zeit eher zu einem Trauerspiel geworden.

Grund dafür gibt die aktuelle Abstimmung zu Java SE 7 und 8.
Diese Versionen verschleppen sich nun schon seit mehreren Jahren und sollen nun endgültig auf den Weg gebracht werden.
An sich ist hier noch alles in Ordnung.

Nun wollte die Apache Software Foundation(ASF) von Oracle eine Lizenz für die Testsuite ihrer Java Implementierung.
Somit kann Apache die Kompatibilität zur Original Java Implementierung überprüfen.
Durch die Übernahme von Oracle wäre dies eigentlich kein Problem gewesen.
Oracle selbst war Jahre lang sogar dafür das Sun Microsystems, ehemaliger Besitzer von Java nun aber durch Oracle aufgekauft, eine Lizenz an ASF aushändigt.

Nun hat Oracle aber eben seine Position geändert und verharrt wie Sun nun eben darauf, dass ASF keine volle Lizenz bekommt.
Die Lizenz die Oracle ASF zugesteht beschränkt aber die Nutzung der Java Implementierung von ASF.
Dies ist aber eben gegen den Gedanken von Freier Software und Open Source.
Ein Grundgesetz der freien Software ist es nämlich, dass die Software uneingeschränkt genutzt werden darf.

ASF hat deshalb bei der aktuellen Sitzung zur Abstimmung der Spezifikation für Java SE 7 und 8 zusammen mit Google für ein Nein gestimmt.
Die restlichen Teilnehmer haben dies korrekterweise mit Ja aber mit einigen Kommentaren zu dem Problem gestimmt.

Oracle selbst vor der Abstimmung ebenfalls gesagt, dass man mit oder ohne Zustimmung des Komitees die Spezifikationen umsetzen wird.

Somit wird sich Java wohl in den nächsten Jahren wohl selbst ins aus Katapultieren.
Ich finde diese Entwicklung sehr traurig, da ich Java wegen seiner Verbreitung und Möglichkeiten schätze.

Leider scheint Oracle ähnlich wie bei MySQL und OpenOffice mit aller Gewalt zu versuchen diese Produkte los zu werden.
Wo keine Wartungs- und Entwicklungskosten anfallen, da kann man eben Geld sparen.

Traurig was aus den guten Produkten von Sun geworden ist.
Ich werde die ganze Geschichte noch weiter verfolgen aber auf gute Nachrichten sollte man dank Oracle nicht mehr hoffen.

Ob die Übernahme durch IBM besser gewesen wäre?

Dienstag, 7. Dezember 2010

jsync Überarbeitung

Nachdem ich mit den letzten Optimierungen noch nicht ganz zu frieden bin, werde ich noch ein paar Tests und Anpassungen machen.
Aktuell verbrennt immer noch zu viel Speicher bei der Auflistung der Dateinamen.
Bei einer Synchronisation von mehren Dateien kann dies schnell zu Speicherfressern werden.

Deshalb werde ich in den nächsten Tagen mal wieder ein paar Kernprobleme angehen.
Anbei werde ich auch die Verarbeitung der Konfigurationsdateien noch überarbeiten.
Aktuell ist dies nur Case Sensitive was bei einem Tippfehler zu Defaultwerten führt.
Dies werde ich in der nächsten Version anpassen.

Dienstag, 30. November 2010

jsync wird schneller

Nachdem ich mit dem Speicherverbrauch und der Geschwindigkeit von jsync nicht sehr zufrieden bin, bastle ich in letzter Zeit mal wieder am Fundament.
Akutell habe ich durch eine Umstellung der Verarbeitung von String auf StringBuilder schon den Speicherverbrauch und die Geschwindigkeit verbessert.

Aktuell ist aber noch ein Manko beim Thema Threadsicherheit.
Dort werden ich auch noch basteln damit es zu keinen Kollisionen kommt.

Donnerstag, 18. November 2010

jsync beherrscht nun Excludes

Nachdem es seit einigen Wochen eine Sicherung mit jsync mache habe ich immer wieder folgende Situation.
Ich sichere mein Benutzerverzeichnis mit allen Dateien und Ordnern.

Dabei werden aber immer große Ordner für Musik, Videos und Downloads gesichert.
Diese habe ich sonst per Skript nach der Sicherung löschen lassen.
Da dies aber immer wieder zu langen Wartezeiten führte, habe ich mich entschlossen Excludes einzubauen.
Diese können in den jeweiligen Verbindungsdatei unter der Sektion excludes eingefügt werden.
Die Ordner oder Dateien werden dann beim synchronisieren ausgelassen.

Samstag, 23. Oktober 2010

Neue Ideen für jsync gesucht

Seit einigen Wochen geht es bei jsync nicht mehr wirklich weiter.
Grund dafür ist einfach, dass ich nicht weiß wie man jsync noch erweitern könnte damit der Nutzen für den Anwender verbessert werden kann.
Ein paar Sachen wären natürlich schon möglich aber nicht umbedingt nützlich.

So könnte ich jsync um eine Optimierung der maximalen Threads erweitern.
Pro CPU Kern würde dann ein Thread arbeiten, was optimal für eine schnelle Ausführung wäre.
Auch eine automatische Buffer Vorgabe wäre bestimmt anhand des vorhandenen Speichers erstellbar.

Trotzdem wären dies eher kleine Erweiterungen die nicht umbedigt von großem Nutzen wären.
Ansonsten bin ich für Ideen offen.

Mittwoch, 7. Juli 2010

jsync reift wieder

Nachdem ich in letzter Zeit durch den Abschluss meiner Ausbildung wenig Zeit für jsync hatte, habe ich in den letzten Tagen mehr Zeit in das Projekt gesteckt.
Dabei habe ich mir einige Gedanken zum Speicherverbrauch gemacht und wie ich diesen etwas optimieren kann.

Durch einen Thread in einem Forum, in dem ich das Problem angesprochen hatte, bekam ich auch einen interessanten Anfangspunkt.

So wäre eine Möglichkeit statt rekursiv durch alle Verzeichnisse zu gehen einfach alle Pfade von Ordner rekursiv einzuladen um diese dann iterativ durchzulaufen.
Dies klingt im ersten Augenblick nach einer guten Lösung hat aber auch einen Speichernachteil.
Bei vielen Ordnern und Unterordnern kann dies viel mehr Speicher kosten als die rekursive Methode.

Da dies aber eine Lösung sein kann um den Speicherverbrauch unter bestimmten Umständen zu verringern, werde ich dafür eine Option in jsync einbauen.
Ansonsten muss ich noch schauen ob es eine Möglichkeit gibt einige Methoden zu optimieren um den Garbage Collector dazu zu bewegen nicht benötigte Objekte zu löschen.
Leider gibt es nicht viele Möglichkeiten den GC per Programmierung zu optimieren.

Hier muss das Programm java mit entsprechenden Parametern aufgerufen werden.
Ich werde am Wochenende mal ein paar Durchläufe an einigen Testdaten machen umd einen möglichst optimalen Aufruf zu finden.

Sobald ich was passendes habe werde ich die Dokumentation von jsync um einen Eintrag erweitern.

Freitag, 28. Mai 2010

jsync geht in die nächste Runde

Da ich mal wieder etwas Lust auf Java hatte, habe ich mal wieder an jsync gebastelt und einige kleine Idee umgesetzt.

So wurde erst einmal der Code des ConfigHelpers aufgeräumt.
Die Zeilen zum erstellen und validieren der Sektionen haben sich schon unnötig vermehrt.
Dies habe ich auf 4 Methoden runter gebrauchen die jeweils aufgerufen werden um die Werte anzulegen.

Das alte System der Sektionen sources, targets und connections habe ich ebenfalls abgeändert.
Also neue Option muss man nun einen Ordner angeben in dem .con Dateien liegen müssen.
Diese Dateien enthalten dann die sources, targets und connections Sektionen.
Somit kann man per Leserecht steuern ob bestimmte Dateien ausgelesen und entsprechend synchronisiert werden sollen.

Dies vereinfacht z.B. die Verwaltung von kritischen Pfaden.
Somit muss man nur noch entsprechend die Leserechte für spezielle Kombinationen setzen oder entfernen.
Somit entfallen ewige hin und her Änderungen an der jsync.conf

Ansonsten habe ich endlich alle Warnungen aus dem Code entfernen können.
Dabei handelt es sich um Warnungen die in den Bibliotheken von jsync befanden und schon seit Ewigkeiten vorhanden waren.

News von der Front

Heute gibt es mal wieder einen kleinen Zwischenstand.


Nachdem ich in der letzten Zeit mal etwas fernab jeglicher privater Programmierung war, habe ich mal wieder an jsync gebastelt.
Es gibt eine neue Option, verifyTransaction, die nach dem kopieren oder abgleichen einer Datei abhängig davon wie eine Datei auf Änderungen geprüft wird, vergleicht ob die Datei korrekt kopiert oder abgeglichen wird.
Bei einem Fehler wird dann lediglich ein Hinweis dazu ausgegeben.

Dies ist eine sehr brauchbare Option, da es vorkommen kann, dass eine Datei durch einen Fehler beim kopieren nicht richtig übertragen werden kann.
Wenn dies der Fall ist, ist die Datei unbrauchbar.
Somit kann man nun auf Nummer sich gehen und die Transaktion überprüfen lassen.

Leider ist diese Funktion noch nicht komplett optimiert.
Aktuell wird bei aktivem Hashing die Quelldatei nochmals gehasht.
Hier werden ich noch eine Optimierung einbauen.
Den bei aktivem Hashing ist der Hash beim gegenprüfen bereits bekannt.

Diese Optimierung spart Zeit, da große Dateien lange brauchen bis sie gehasht wurden, und schont die Festplatte.

Die Optimierung werde ich aber noch genauen planen müssen da der aktuelle Stand schon recht stabil ist und dies eine problematische Änderung ist.

Ansonsten gibt es auch noch erfreulichere Nachrichten.
Ich habe meinen Arbeitsvertrag am Freitag unterschrieben.
Sobald ich die letzte Prüfung am 16.Juni erfolgreich bestehe und mir die schriftliche Abschlussprüfung keinen Strich durch die Rechnung macht, bin ich ab dem ersten Juli offiziell bei DeDeNet angestellt.

Nach zwei ein halb Jahren bei DeDeNet wäre dies wirklich ein Traum.
Nachdem ich nun auch schon seit vier Jahren auf mein Ziel zum Fachinformatiker Fachrichtung Anwendungsentwicklung hinaus arbeite scheint mein kleines Lebensziel schon fast erreicht.

Am fünften Juni wird auch das Ergebnis der schriftlichen Prüfung bekannt sein.
Bis dahin heißt es noch warten und hoffen.

Zuletzt noch ein paar News des Tages.
Da ich heute mal viel Zeit habe und mein Zimmer wie ein Kriegsgebiet aussieht, werde ich mal die Zeit nutzen und aufräumen und die Schränke mal putzen.
Mal will ja nicht auf einer Müllkippe leben.

Ansonsten heißt es, dank Pfingsten, die Beine hoch machen und den Tag genießen.
Da das Wetter auch gut mitspielt, kann man den Tag wirklich gut nutzen.

Sonntag, 18. April 2010

Mal wieder C++

Nach einer langen Zeit, 2 Jahre sind es nun schon, nicht mehr aktiv C++ entwickelt habe, habe ich Gestern mal wieder damit angefangen.

Ich wollte mal wieder direkt in die native Softwareentwicklung mit ein paar einfachen Aufgaben und mal mit Paramtern an Programmen rumprobieren.

Ich habe dafür ein kleines Programm geschreiben was Primahlen berechnet.
Diese werden dann zeilenweise in eine Datei geschreiben.
Damit das Programm nicht wieder bei 0 anfangen muss, nimmt es die zuletzt berechnete Primzahl und rechnet ab dort wieder weiter.

Ich hatte dieses kleine Programm erst mit Java entwickelt.
Leider was ich sehr unzufrieden damit, da Java für das Programm selbst 48 MB reserviert, was für ein einfaches Programm etwas zu viel ist.

Und ein Aufruf des Programms ist mit Java auch nicht besonders elegant.

Leider musste ich auch feststellen, dass ich im Bereich C++ schon sehr eingerostet war.
Alleine für einfache String Operationen und die Schreib- und Leseklassen musste ich in der C++ Referenz nachschlagen.

Nach einigen Anpassungen läuft nun alles sehr flott.
Mit den Parametern m= kann man das Limit zu berechnenden Zahlen angeben.
Der Standardwert beträgt dabei 1 Millisekunden.

Der Parameter s= gibt dann an wieviele Millisekunden das Programm anch einer berechneten Zahl, nicht Primzahl, es schlafen soll.
Der Standardwert beträgt hierfür 100.

Die aktuelle Version ist im Moment nur für Linux/Unix Systeme angepasst.
Da ich einige Systemfunktionen anspreche, muss ich noch eine Trennung für Windows/Unix Systeme einbauen.

Dank dem guten alten Präprozessor und einigen vordefinierten Makros ist dies aber weniger ein Problem.
Dies wäre auch mein erster Anlauf im per Makros für unterschiedliche Systeme zu entwickeln, was die Portierung leichter macht.

Freitag, 19. März 2010

Neues Java Buch :)

Ich habe mal an der Buch Verschenk Aktion von tutorials.de teilgenommen und dabei ein neues Java Buch ergattert.
Darin werden die Themen rund um Java abgedeckt.
Egal ob es Programme mit einer Java UI oder Web Anwendungen sind.
Alle Themen werden darin abgedeckt.

Der Preis liegt mit 8 Euro in einem guten Rahmen.
Leider wäre eine CD von Vorteil gewesen auf der alle Beispiele darauf sind, die im Buch behandelt werden.

Mittwoch, 24. Februar 2010

jsync, nio und der Speicherverbrauch

Gestern habe ich mal einen Test gemacht, der mich doch sehr überrascht hat.
So hat sich die Implementierung zum Dateien kopieren ohne nio als Speicher schonender und effizienter herausgestellt.

Grund für die Umstellung war, dass mir die Tools top und htop unter Debian Lenny immer zeigten, dass der Speicher immer im Gigabyte Bereich gefüllt ist sobald größere Dateien kopiert werden.

Legt man nun aber eine Speichergrenze von 1 MB in der jsync.conf und stellt nio ab, kommt man nur auf 1 MB Speicherverbrauch zusätzlich zu den intern gespeicherten Pfaden.
Bei einer Kopieraktion lag ich im Schnitt bei 100 MB.

Deshalb empfehle ich, auch wenn nio in Java 7 eine wichtigere Rolle spielen wird als die alten io Schnittstellen, eher auf die klassische Art zu setzen, wenn man Speicher schonen will.

Samstag, 13. Februar 2010

jsync, GPL und der erste Release

Gestern hat sich ein Sourceforge Benutzer bei mir nach den aktuellen jsync Dateien informiert.

Leider musste ich diesem sagen, dass es aktuell noch keinen Release gab.
Ich habe mir dies aber auch zu Herzen genommen und habe mich heute um die letzten Probleme in der aktuellen Version gekümmert.

Dazu zählt eine Anpassung zum Validieren der jsync.conf, Einbau des GPL Hinweis in den Kopf einer jeden Code Datei, Anpassungen der aktuellen Dokumentation und und und.

Ich habe auch einen positiven Kommentar auf sourceforge bekommen.
Dort hat sich ein Mac User bedankt und mir mitgeteilt, dass er mit jsync seine Dokumente mit seinem PC synchronisiert.

Es ist schon sehr cool wenn man solche Kommentare lesen kann :)

Sonntag, 7. Februar 2010

jsync beherrscht nun symbolische Links

Ich habe bei mehren Tests in der Vergangenheit immer das Problem gehabt, dass jsync nicht mit einem Link angesprochen werden konnte.

Hierbei war das Problem, dass doe jsync.conf immer direkt neben der jsync.jar liegen muss.
Der Pfad zu dieser Datei war bisher immer relativ.
Wenn man nun aber einen symbolischen Link als Verweis nutzt, dann wird versucht in dem Verzeichnis des Links nach der jsync.conf zu suchen.

Dieses Problem lässt sich auch leider nicht wie in C# mit einer Klasse einfach lösen.
Das Problem habe ich so gelöst, dass ich mit die Url für die ConfigHelper.class aus der jar Datei habe geben lassen.

Das Format ist dann file://D:/jsync/jsync.jar!/jsync/helpers/ConfigHelper.class

Somit musste ich nur die URL um file:// kürzen und den Pfad von jsync.jar nehmen um dem absoluten Pfad zu ermitteln.

Dies ist etwas trickie aber funktioniert ohne Probleme.
Im Code liegt auch ein Fix für Entwickler vor.
Den in einer Entwicklungsumgebung hat man keine fertige .jar Datei.

Ansonsten bin ich froh, dass dieses Problem endlich gelöst ist.
Somit kann ich endlich meine ganzen Backup Skripte anpassen.
Es ist ziemlich nervig immer wieder per cd in das Verzeichnis von jsync zu wechseln.