55 votes

Une bonne bibliothèque rsync pour Java ?

J'ai fait quelques recherches et j'ai trouvé des implémentations de l'algorithme rsync écrites en Java, mais il semble que tous les projets soient morts depuis un certain temps.

Quelle est une bonne bibliothèque Java implémentant rsync ? S'il n'y en a pas : La meilleure façon d'utiliser rsync est-elle d'invoquer le programme depuis mon application Java ?

13voto

xmedeko Points 1038

Regardez ça http://sourceforge.net/projects/jazsync/ Tout juste sorti. C'est basé sur jarsync donc je pense que jarsync devrait bien fonctionner aussi.

9voto

David Johnson Points 337

Oui, comme la plupart des gens l'ont déjà souligné, l'exécution d'une ligne de commande sous-jacente à partir de votre programme Java (où rsync est déjà installé sur les ordinateurs en question) est la meilleure voie. Ce que je fais, c'est...

        // Currently uses passwordless SSH keys to login to sword
        String[] cmd = new String[]{"rsync", "-r", USER + "@" + HOST + ":" + REMOTE_FILE_ROOT, LOCAL_FILE_ROOT};
        ProcessBuilder pb = new ProcessBuilder(cmd);
        Process p = pb.start();
        int val = p.waitFor();
        if (val != 0) {
            throw new Exception("Exception during RSync; return code = " + val);
        }

En fait, j'exécute ma commande rsync comme une tâche de type cron dans mes programmes Java en utilisant la bibliothèque cron4j.

2voto

gavinb Points 9237

Il existe une bibliothèque C appelée librsync qui fournit une API en C pour le protocole rsync. Vous pourriez facilement écrire un wrapper Java en utilisant JNI. Le seul problème est que le projet semble inactif. Mais si cela fonctionne pour vous, il y a une solution juste là.

0voto

Joshua Points 8315

La seule bibliothèque que j'ai trouvée est : jarsync mais elle n'est pas activement développée. Une autre possibilité future est : java-rsync

0voto

Max A. Points 1916

Si les qualités multiplateformes de Java ne sont pas un avantage considérable pour vous (par exemple, si vous ne prévoyez d'exécuter votre logiciel que sur des saveurs Unix), je vous recommanderais d'adopter l'approche de l'exécution de commandes. J'ai moi aussi cherché une bibliothèque Java rsync dans le passé, mais il y a environ 2 ans. A moins que quelque chose n'ait changé depuis, vous feriez mieux d'exécuter les commandes du système d'exploitation plutôt que d'utiliser un logiciel dont la compatibilité avec rsync est douteuse et qui n'est pas activement maintenu ou utilisé par quelqu'un d'autre. Comprenez qu'à long terme, une telle bibliothèque deviendra un handicap, surtout si elle se casse ou si ses fonctionnalités doivent être étendues.

Si rien de ce qui précède ne vous intéresse, voyez si vous pouvez survivre sans utiliser rsync du tout. Le transfert de fichiers simple peut être accompli en utilisant une pléthore d'autres méthodes.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X