2016-02-26 2 views
0

Quel vraiment besoin est une application java qui vérifie les nouvelles mises à jour à partir d'un fichier XML ou TXT de l'Internet qui montre les fichiers qui ont été mis à jour comme suit:Java auto mise à jour d'application

V.1.0.5 
class1.java 
img/img1.jpg 

V.1.0.6 
class1.java 
class3.java 
class4.java 

L'App . Doit vérifier la mise à jour de sa version actuelle pour la dernière et faire une liste des fichiers mis à jour, dans ce cas devrait être:

class1.java 
img/img1.jpg 
class3.java 
class4.java 

L'application doit ensuite télécharger ces fichiers à partir d'un lien comme: http://webadress.com/appfiles/XXXXXXX où XXXXXXX est le nom de fichier.

Le principal problème que j'ai rencontré est Comment l'application peut télécharger et remplacer ces fichiers dans le même fichier JAR de l'application.

J'ai pensé à un bootstrap (application SecondP qui lance l'application principale et vérifie les mises à jour mais ne peut pas vraiment la faire fonctionner, comme il se doit Extraire l'application principale jar et télécharger les nouveaux fichiers de mise à jour ré-archiver les fichiers dans un fichier jar et le lancer

Tout simplement ce dont j'ai vraiment besoin est une application qui peut mettre à jour soi-même sur le fichier par des bases de fichiers ne remplaçant pas tout le fichier jar.Comme la bande passante est vraiment un gros problème.

Merci beaucoup pour l'aide à l'avance :)

+0

Vous pouvez simplement mettre les nouveaux fichiers dans un nouveau pot pour remplacer les anciennes classes. Java prendra les classes des jars dans l'ordre où elles apparaissent dans votre variable de chemin de classe. – flakes

+2

Java dispose déjà d'une fonction permettant de faire cela, et cela fait partie de chaque installation Java: [Java Web Start] (http://docs.oracle.com/javase/8/docs/technotes/guides/javaws/). (Pourquoi cela a-t-il une balise 'ant'?) – VGR

+0

Je suggère de rester en retrait et de regarder les systèmes que vous utilisez pour construire et déployer. Laissez votre déployeur repérer les nouvelles versions et redéployer automatiquement l'application, plutôt que d'attendre que l'application se mette à jour automatiquement. Les applications ne peuvent pas s'attendre à repérer les modifications apportées à la source, à les télécharger et à les compiler localement. –

Répondre

0

Vous avez besoin de deux programmes distincts dans deux JVM séparés s: votre programme et le programme de mise à jour. Le programme de mise à jour (éventuellement à la demande de l'utilisateur) vérifie ce qui doit être téléchargé, télécharge les fichiers et avertit l'utilisateur. L'utilisateur sauvegarde son travail, arrête l'application et demande au correcteur de corriger les fichiers binaires de l'application, par exemple en remplaçant les fichiers JAR, en mettant à jour les bases de données et/ou les fichiers de configuration, les liens symboliques et autres joyeusetés.

Je ne connais pas de framework pouvant faciliter l'écriture d'un tel système - il est donc probable que vous deviez coder chaque morceau de code par vous-même. Comme ce n'est pas une tâche facile, vous devriez envisager l'alternative conservatrice d'écrire simplement un assistant (il existe des cadres pour cela) qui remplace complètement les binaires et fonctionne à la fois pour la première installation et la mise à niveau. En outre, sachez que vous aurez parfois besoin du programme de mise à jour pour se mettre à niveau automatiquement!