Ein Update System programmieren

Status
Nicht offen für weitere Antworten.
S

Shaguar

Gast
Hallo Leute,
bin gerade dabei für mein Programm ein Update System einzubauen. Das beim Programmstart auf nem Server schaut ob da eventuell ne neue Version vorhanden ist und dann die locale Version ggf updatet.
Habt ihr damit schon Erfahrungen gemacht die ihr vielleicht mit mir teilen würdet?
Also sowohl local als auch auf dem Server ist das Programm jeweil nur als Jar vorhanden oder zumindest gehe ich mal davon aus. Als nächstes muss er dann ja irgendwie in das Jar auf dem Server hineinschauen um dort irgendwo die Versionsnummer auszulesen als nächstes falls die Versionen unterschiedlich sind kommt dann das update. Entweder er ersetzt das komplette Jar mit dem vom Server oder schaut sich die einzelnen Dateien an und überprüft das lastModified Datum und ersetzt nur die Dateien die sich geändert haben (Allerdings werden das bei Jar Archiven vermutlich eh alle sein da das Jar Archiv ja bei jeder neueren Version neu erstellt werden muss und sich nicht nur einzelne Dateien ändern)
und jetzt kommt dann das eigentlich Hauptproblem und zwar wie ersetze ich die neu heruntergeladene Version mit der localen? Das geht ja schlecht wenn die locale Version gerade noch am laufen ist.
Wäre nett wenn mir da jemand helfen könnte, wie man sowas angeht also angefangen mit der Versions-nummer überprüfung bis hin zum ersetzen des komplettes Programms (oder auch nur einzelne Dateien)
Mfg.
 

lhein

Top Contributor
Shaguar hat gesagt.:
Hallo Leute,
...
und jetzt kommt dann das eigentlich Hauptproblem und zwar wie ersetze ich die neu heruntergeladene Version mit der localen? Das geht ja schlecht wenn die locale Version gerade noch am laufen ist.
...

Da wirst Du Dir in irgendeiner Form ein Batch machen müssen, daß in einem definierten Verzeichnis nach einem Update sucht. Findet er eins, kopiert er es über deine Version rüber (ich denke wir reden hier von einer Jar) und startet danach das Programm. Wie Du sowas letztendlich realisierst bleibt Dir überlassen. Möglichkeiten gibts viele.

lr
 
M

maki

Gast
Was AlArenal gesagt hat!

Ausser du hast vor, ein neues, "runderes" Rad zu erfinden ;)
 
S

Shaguar

Gast
Ok und muss ich um Java Webstart benutzen zu können an meinen Programm (das schon fast fertig ist) noch irgendwelche grösseren Änderungen vornehmen damit Webstart funktioniert oder geht das so quick&dirty mäßig?
 
S

Shaguar

Gast
Das wäre ja echt mal ne gediegene Sache wenn das so einfach funktioniert.
Gleich mal testen.
 
S

Shaguar

Gast
Also nach der Testphase habe ich da gleich mal ein Problem :
ich habe die jnlp Datei erstellt und dort den XML Code rein geschrieben.
Wenn ich jetzt die jnlp Datei ausführe dann lädt er erstmal die benötigten Dateien herunter bringt aber dann folgenden Fehler :
Fehlender signierter Eintrag in Ressource http:/............swingx.jar
Hab sie schon zweimal signieren lassen, die anderen Jars nimmt er problemlos an samt Signatur.
Andere Frage noch: Das ist ja ne externe Bib die ich benutze, momentan liegt sie auf dem Server im Unterverzeichnis lib und ich hab alle externen Bib in der XML Datei mit angegeben, kann man diese Bibs auch mit in das Haupt Jar packen damit alles eine Datei wird und ich sie nicht extra eintragen muss?
 

happy_robot

Bekanntes Mitglied
Shaguar hat gesagt.:
Also nach der Testphase habe ich da gleich mal ein Problem :
ich habe die jnlp Datei erstellt und dort den XML Code rein geschrieben.
Wenn ich jetzt die jnlp Datei ausführe dann lädt er erstmal die benötigten Dateien herunter bringt aber dann folgenden Fehler :
Fehlender signierter Eintrag in Ressource http:/............swingx.jar
Hab sie schon zweimal signieren lassen, die anderen Jars nimmt er problemlos an samt Signatur.
Ich kann mich erinnern so einen seltsamen Fehler mal gehabt zu haben. Bin mir nicht ganz sicher, aber ich glaube es hatte damit zu tun daß bereits anderweitig signierte JARs nicht nochmals neu signiert werden dürfen.
Bei der swingx.jar könnte man davon ausgehen daß die bereits signiert ist. Nimm sie aus dem Signiervorgang heraus.

Das Signieren kann man übrigens sehr fein mit ANT automatisieren.
 
S

Shaguar

Gast
Ne wenn ich sie nicht selbst signiere kommt :
"NIcht signierte Datei fordert uneingeschränkten ZUgriff aufs System"
 

AlArenal

Top Contributor
Schau mal, ob das originale JAR nicht bereits signiert ist und lösche ggf. zuvor die dortigen Einträge/Dateien, ehe du selbst nochmal signierst.
 

happy_robot

Bekanntes Mitglied
Shaguar hat gesagt.:
Ne wenn ich sie nicht selbst signiere kommt :
"NIcht signierte Datei fordert uneingeschränkten ZUgriff aufs System"
das die dateien signiert sind hat nichts damit zu tun daß nachher beim start immer noch ein dialog hochkommt der mitteilt welche rechte die anwendung fordert.

die signierung gibt dir nur die möglichkeit deine applikation gegen einen vertrauenswürdigen unabhängigen dritten zu identifizieren welcher dich legitimiert hat.
 
S

Shaguar

Gast
yo es ist aber kein Dialog, sondern eine Fehlermeldung und er bricht alles ab.
 

happy_robot

Bekanntes Mitglied
Shaguar hat gesagt.:
yo es ist aber kein Dialog, sondern eine Fehlermeldung und er bricht alles ab.
schon klar, aber du wirst ,auch wenn alles erfolgreich signiert ist, beim ersten start einen dialog bekommen der erstmal anfragt ob der nutzer der app vertraut. das meinte ich damit.
 
S

Shaguar

Gast
mal ne ganz dumme Frage, wie und womit kann ich denn die Signatur einer Datei überprüfen?
und hat von euch noch keiner Erfahrungen in dieser Richtung mit der swingx Bibliothek gemacht?
 
S

Shaguar

Gast
Ja also es scheint auf jeden Fall beides nicht zu funktionieren, signieren klappt nicht und unsigniert lassen auch nicht (also meinerseits unsigniert lassen). Alle anderen externen Bibliotheken nimmt er problemlos an nur nicht diese.
 
S

Shaguar

Gast
Schau mal, ob das originale JAR nicht bereits signiert ist und lösche ggf. zuvor die dortigen Einträge/Dateien, ehe du selbst nochmal signierst.
Soll ich jetzt daraus schliessen das mir hier keiner sagen kann oder will wie ich das machen kann?
 
S

Shaguar

Gast
ok danke,
also die swingx Bibliothek ist von Haus aus nicht signiert.
Wo wir wieder beim ursprünglichen Problem wären, warum kommt der Fehler :
"Fehlender signierter Eintrag in Ressource: http://localhost/omdb/lib/swingx-0.9.1.jar"
Hier mal der Ausnahme Text :
JNLPException[category: Download-Fehler : Exception: null : LaunchDesc: null ]
at com.sun.javaws.security.SigningInfo.checkSigning(Unknown Source)
at com.sun.javaws.cache.DownloadProtocol$RetrieveAction.actionDownload(Unknown Source)
at com.sun.javaws.cache.DownloadProtocol.doDownload(Unknown Source)
at com.sun.javaws.cache.DownloadProtocol.getResource(Unknown Source)
at com.sun.javaws.LaunchDownload.downloadJarFiles(Unknown Source)
at com.sun.javaws.LaunchDownload.downloadEagerorAll(Unknown Source)
at com.sun.javaws.Launcher.downloadResources(Unknown Source)
at com.sun.javaws.Launcher.handleApplicationDesc(Unknown Source)
at com.sun.javaws.Launcher.handleLaunchFile(Unknown Source)
at com.sun.javaws.Launcher.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
und hier der Inhalt der JNLP Datei
<?xml version="1.0" encoding="utf-8"?>
<jnlp
spec="1.0+"
codebase="http://localhost/omdb"
href="Omdb.jnlp">
<information>
<title>Omdb</title>
<vendor>Shaguar</vendor>
<homepage href="docs/help.html"/>
<description>WebStart Test</description>
<description kind="short">Only a test</description>
<icon href="images/swingset2.jpg"/>
<icon kind="splash" href="images/splash.gif"/>
<offline-allowed/>
</information>
<security>
<all-permissions/>
</security>
<resources>
<j2se version="1.6"/>
<jar href="Omdb.jar"/>
<jar href="lib/h2.jar"/>
<jar href="lib/jdom.jar"/>
<jar href="lib/TableLayout.jar"/>
<jar href="lib/swingx-0.9.1.jar"/>
</resources>
<application-desc main-class="omdb.Main"/>
</jnlp>
 
S

Shaguar

Gast
erm, du hast dir wohl die vorherigen Posts nicht alle durchgelesen.
Die Datei ist signiert und dann kommt dieser besagte Fehler.
 

happy_robot

Bekanntes Mitglied
Shaguar hat gesagt.:
Soll ich jetzt daraus schliessen das mir hier keiner sagen kann oder will wie ich das machen kann?
viele deiner fragen lassen sich durch einfaches googlen lösen!

etwas mehr persönlichen einsatz fänd' ich durchaus gut, statt sich hier die arbeit von anderen erledigen zu lassen!!
sorry, aber das musste jetzt sein.
 
S

Shaguar

Gast
Ok was bleibt mir jetzt noch übrig?
Keine SwingX Lib nehmen?
Oder ist es theoretisch möglich das ich mal ne SwingX lib teste die von jemand anderm signiert wurde?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Update System Java Basics - Anfänger-Themen 16
Mugetsu35 ArrayList Update ohne Index Java Basics - Anfänger-Themen 6
E Mysql Update wenn es nicht existiert insert Java Basics - Anfänger-Themen 14
G Konstruktor und update Java Basics - Anfänger-Themen 4
Henri Webservice Delete und Update Methode funktioniert nicht Java Basics - Anfänger-Themen 27
J Threads PrograssBar update während thread Java Basics - Anfänger-Themen 13
S Lost-Update Semaphore Java Basics - Anfänger-Themen 6
K Schlüsselworte Nach Java update findet mdb Datei nicht Java Basics - Anfänger-Themen 6
M Methodenaufruf über SQL UPDATE Java Basics - Anfänger-Themen 8
J JavaFX -> SocketIO -> Thread -> Update Label Java Basics - Anfänger-Themen 13
C JTable update mit MySQL Datenbank Java Basics - Anfänger-Themen 1
J fehler nach windows update Java Basics - Anfänger-Themen 44
Y Observer update Java Basics - Anfänger-Themen 3
G Threads Konstantes Update Java Basics - Anfänger-Themen 1
X Eventservice Probleme nach Update Java Basics - Anfänger-Themen 0
B VAriables update in for-Schelifen Java Basics - Anfänger-Themen 3
L Jar aus Jar Starten lassen (Update Tool) Java Basics - Anfänger-Themen 6
R Nach Ubuntu-Update: Konsole spuckt bei neu Kompilierten Programmen Fehler aus (BlueJ)(Ubuntu12.04) Java Basics - Anfänger-Themen 11
L Auf herunterfahren des PCs reagieren und Datensatz update machen Java Basics - Anfänger-Themen 15
K Threads jProgressBar update Java Basics - Anfänger-Themen 14
Gugelhupf JDK installieren Fehlermeldung 1336 - Java SDK 7 Update 5 x64 Java Basics - Anfänger-Themen 4
A JDK installieren Java update - neu installieren? Java Basics - Anfänger-Themen 7
R JDK installieren Nach Update auf java 1.7 Connection refused Java Basics - Anfänger-Themen 9
E Programm - Update via Internet? Java Basics - Anfänger-Themen 5
B JDK installieren Java SE Development Kit 6 Update 25 Java Basics - Anfänger-Themen 5
M Update-Ticker... String in Textdatei schreiben und auslesen Java Basics - Anfänger-Themen 5
S MVC Prinzip - update() ? Java Basics - Anfänger-Themen 2
B Problem mit prepareStatement UPDATE Java Basics - Anfänger-Themen 2
M Serializable - Bei Update ältere Daten importieren Java Basics - Anfänger-Themen 14
C JAVA - Einstieg mit Eclipse - Update Sites und Ähnliches Java Basics - Anfänger-Themen 6
S JTree, Problem mit View Update Java Basics - Anfänger-Themen 2
L Java Persistence API - Update Befehl? Java Basics - Anfänger-Themen 5
hdi Fehler beim Model-Update einer JList (DefaultListModel) Java Basics - Anfänger-Themen 3
A update/draw schleife Java Basics - Anfänger-Themen 5
S update wird nicht aufgerufen Java Basics - Anfänger-Themen 9
G JFreeChart und das Update(was nicht klappt). Java Basics - Anfänger-Themen 3
A label update Java Basics - Anfänger-Themen 10
Y JDK 6 Update 5 with Java EE? Java Basics - Anfänger-Themen 2
M Java SQL-Update Java Basics - Anfänger-Themen 6
A per "update" ein Bild Strich für Strich "male Java Basics - Anfänger-Themen 9
P Zeichenprogramm-->update() aushebeln Java Basics - Anfänger-Themen 11
S SQL UPDATE in Java "wie schreiben"? Java Basics - Anfänger-Themen 6
E Update JList Java Basics - Anfänger-Themen 13
J Problem bei Update auf Datenbank Java Basics - Anfänger-Themen 2
K Observer Observable update() . Java Basics - Anfänger-Themen 13
R JRE 1.5.0 Update 7 Install erkennt nicht Firefox/Netscape Java Basics - Anfänger-Themen 3
M [SOLVED]update() bei MVC Java Basics - Anfänger-Themen 4
M Datenbankabfrage mit UPDATE Java Basics - Anfänger-Themen 4
M Unterschied zwischen J2SE 5.0 Update x und J2SE 1.4.x Java Basics - Anfänger-Themen 4
N Array aus JCheckBox? 1000 if's UPDATE: Spaltennamen auslesen Java Basics - Anfänger-Themen 12
G Update auf Datenbankspalte vom Typ Timestamp mit aktu. Datum Java Basics - Anfänger-Themen 3
G Observable/Observer update wird nicht ausgeführt Java Basics - Anfänger-Themen 9
D System.out.println Java Basics - Anfänger-Themen 1
O System.out.println wird nicht ausgegeben? Java Basics - Anfänger-Themen 11
paulen1 Methoden Unerwünschte Ausgabe bei System.out.print in For-Schleife Java Basics - Anfänger-Themen 8
M Keine Ausführung von System.out.println() Java Basics - Anfänger-Themen 3
O System.out array Java Basics - Anfänger-Themen 4
J Programm beenden ohne System.exit() oder Runtime.exit() Java Basics - Anfänger-Themen 5
C System.out.println - Parameterübergabe funktioniert nicht Java Basics - Anfänger-Themen 2
N Input/Output Eine Frage über system.out.println. Java Basics - Anfänger-Themen 10
H Befehl wird nicht ausgeführt - System.out.println Java Basics - Anfänger-Themen 3
C system cannot be resolved Fehler in Eclipse Java Basics - Anfänger-Themen 18
S Anweisungen verstehen System.out.print/println Java Basics - Anfänger-Themen 2
B Warum werden meine System.out.println's übersprungen? Java Basics - Anfänger-Themen 9
I System.currentTimeMillis() nutzen Java Basics - Anfänger-Themen 2
R Erste Schritte Eclipse - Java - System.out.println(); funktioniert nicht Java Basics - Anfänger-Themen 2
C System.in.read() Boolsche Werte vergleichen Java Basics - Anfänger-Themen 8
B Input/Output System.out.print mit und ohne "" Java Basics - Anfänger-Themen 5
T System.out.println() Java Basics - Anfänger-Themen 5
M System.property persistieren Java Basics - Anfänger-Themen 6
N (Java) Regristrierung und Login System mit einer Datenbank Java Basics - Anfänger-Themen 5
A Input/Output System.out Ausgabe aktualisieren, ohne Konsole vollzuspamen Java Basics - Anfänger-Themen 2
R Input/Output Frage zu System.out.println Java Basics - Anfänger-Themen 5
S System.out.printIn("Hello, World!"); Java Basics - Anfänger-Themen 3
A Passwort System Java Basics - Anfänger-Themen 4
N Input/Output System.in funktioniert nicht Java Basics - Anfänger-Themen 4
S Input/Output System.out.println - Manipulieren bzw. Alternative..? Java Basics - Anfänger-Themen 2
E Was ist die JRE System Library? Java Basics - Anfänger-Themen 3
V System.out.println zu JTextArea Java Basics - Anfänger-Themen 6
V OOP System.out.println(Objekt) Java Basics - Anfänger-Themen 3
D int x in System.out.println(), aber wie? Java Basics - Anfänger-Themen 1
J Variablen Komsiche System.in.read() return-value? Java Basics - Anfänger-Themen 3
R warum kann System.out.println(..) etwas, was Swing-Elemente Nicht können ? Java Basics - Anfänger-Themen 11
N System Proxy verwenden Java Basics - Anfänger-Themen 0
C system.out.printf mit streams benutzen Java Basics - Anfänger-Themen 7
L system.print.out geht nicht Java Basics - Anfänger-Themen 11
D Ausgabe einer Matrix mit System.out.println Java Basics - Anfänger-Themen 6
F System kann die Datei nicht finden Java Basics - Anfänger-Themen 7
R ArrayList - System.out.println nur einmal, statt 10 mal Java Basics - Anfänger-Themen 5
M Verwendung von System.exit(0) problematisch? Java Basics - Anfänger-Themen 1
D system.out.println >> JTextArea Java Basics - Anfänger-Themen 1
O Frage zu System.out.println() Java Basics - Anfänger-Themen 1
G System.out.printf geht nicht Java Basics - Anfänger-Themen 6
A System.out.println() - Aufbau Java Basics - Anfänger-Themen 1
D JDK installieren No JVM could be found on your system. Java Basics - Anfänger-Themen 9
Z System(einstellungen) per Java ändern/Steuern | Betriebssystembezogen Java Basics - Anfänger-Themen 7
M Variablen Ausgabe bei System.out.format? Java Basics - Anfänger-Themen 3
FrankR2 Grundsätzliches Verständnisproblem: Java 32/64-bit; Windows 7/8, 32/64-bit-System Java Basics - Anfänger-Themen 5
D kleines problem bei system.out.println schreibweise Java Basics - Anfänger-Themen 6
J Umgang mit System.out.println() und .print() Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben