2010-10-06 9 views
5

Die "Jsch" basierte Implementierung funktioniert für mich.
Aber es sieht nicht modern wegen der Verwendung von Vector (alte Java-Sammlung).
Ich fand, dass die anderen Implementierungen weniger populär und nicht dokumentiert sind.
Können Sie die Implementierung der SFTP-Bibliothek empfehlen, mit der er gute Erfahrungen gemacht hat?
Danke.Suche nach Java SFTP moderne Bibliothek, nicht jsch

Antwort

2

Wie @dty sagte, solange Ihre Anwendung reibungslos funktionieren kann, warum kümmern Sie sich für die Verwendung veralteter Klassen/Methoden in der Bibliothek?

Sie müssen nur darauf achten, was Sie anrufen, nicht, wie es im Inneren funktioniert.
Sie können auch Abstraktionswerkzeuge über JSch verwenden, aber es wird nichts ändern.

Sie können auch nach JSch-Alternativen suchen, aber da JSch weit verbreitet ist, werden Sie wahrscheinlich weniger Bugs haben.

+1

Das Problem mit alten SSH-Implementierungen ist, dass solche Implementierungen in der Regel mit späteren Versionen der SSH-Server-Software nicht gut funktionieren. Daher muss eine Wartung für eine bessere Kompatibilität bereitgestellt werden, und das bieten Open-Source-Implementierungen nicht. –

+0

Der Hinweis ist im Namen ... wenn es Open-Source ist und Sie möchten, dass eine neue Funktion "spätere Versionen von SSH-Server-Software" unterstützt, dann implementieren Sie es einfach selbst. – dty

3

Es funktioniert. Wen interessiert es, wenn es Vector verwendet? Es ist bei weitem das beliebteste. Tatsächlich ist es das einzige, das ich mir vorstellen kann, ohne auf Google zurückgreifen zu müssen.

+0

http://stackoverflow.com/questions/1386275/why-java-vector-class-is-considered-obsolete-or-deprecated – Boris

+0

Hatten Sie einen Punkt? Ich weiß, dass Vector synchronisiert ist. Aber: a) Der Synchronisationsaufwand ist bei einer modernen JVM mit unübertroffenen Sperren praktisch Null, und b) Sie sprechen von einer Handvoll zusätzlicher Prozessorzyklen im Vergleich zu der Belastung durch Netzwerk-Kommunikation mit Verschlüsselung. – dty

+0

Außerdem wird der Vector in den performance-kritischen Abschnitten nicht wirklich verwendet, wenn Sie keine Millionen von Identitäten haben und ständig neue Verbindungen öffnen. –

1

Sie können auch einen Blick auf IP*Works! SSH von/n Software werfen.

+2

Nicht, dass ich das Tool verurteile, aber $ 899 scheint teuer zu sein, nur einige "Vector" loszuwerden. –

4

Es gibt eine neuere "Version" von Jsch auf GitHub. Es ist eine enorme Verbesserung der bestehenden Bibliothek in vielerlei Hinsicht. Weitere Informationen finden Sie in der README auf der Website und im umfassenden Javadoc. https://github.com/vngx/vngx-jsch. Es ist auch auf den meisten großen Maven Repos verfügbar und es ist OSGi kompatibel. Es gibt einige Alternativen, aber diese ist solide und ich glaube die aktuellsten (spec/code/docs). Haftungsausschluss: Ich bin ein Mitwirkender.

+0

Ich habe das gerade gefunden ... und sehe, dass du einige der gleichen Dinge getan hast, auch mit meiner [jsch-Dokumentation ] (http://github.com/epaul/jsch-documentation) Version (die keine Funktionalität ändert, hauptsächlich Dokumentation). Ich denke, dass der Hauptgrund, warum der ursprüngliche JSch nicht aktualisiert wird, um moderne Klassen, Generika und dergleichen zu verwenden, darin besteht, dass er immer noch mit alten VMs (und auch mit Low-End-Geräten) verwendbar sein sollte. –

+0

Haben Sie auch versucht, den ursprünglichen Autor zu kontaktieren? Es gibt eine [aktive Mailingliste] (http://sourceforge.net/mailarchive/forum.php?forum=jsch-users). –

+0

Uns geht es mehr um die Leistung und die Codequalität als um die Unterstützung von älteren Versionen.Ganz zu schweigen von etwas kann leicht nach Bedarf zurückverfolgt werden. Es gibt viele Fehlerbehebungen und Verbesserungen der Benutzerfreundlichkeit zusätzlich zu Leistungsverbesserungen und Einhaltung der Spezifikationen. Es wird meistens intern neu geschrieben, aber mit einer API, die für Benutzer von jsch bequem ist, und da die Codebasis von jsch stammt, zahlen wir eine Hommage, indem wir sie in den Namen aufnehmen. Wir haben niemanden kontaktiert, das ist eine völlig unabhängige Gabel des Projekts. – Scott

0

Eine billigere kommerzielle Alternative (mein eigenes Produkt, für die Offenlegung) ist edtFTPj/PRO.