Działa na mnie implementacja "jsch".
Ale wygląda na to, że nie jest nowoczesne ze względu na użycie Vector (stary styl kolekcji Java).
Stwierdziłem, że inne implementacje są mniej popularne i nieudokumentowane.
Czy możesz polecić implementację biblioteki SFTP, która ma z nią duże doświadczenie.
Dzięki.Poszukuję biblioteki nowoczesnej SFTP java, nie jsch
Odpowiedz
Zgodnie z informacją podaną pod numerem @dty, o ile aplikacja może działać sprawnie, dlaczego interesuje Cię użycie nieaktualnych klas/metod w bibliotece?
Musisz tylko zadbać o to, do czego dzwonisz, a nie jak to działa w środku.
Możesz także użyć narzędzi do abstrakcji powyżej JSch, ale nic to nie zmieni.
Możesz również sprawdzić opcje JSch, ale ponieważ JSch jest powszechnie używany, prawdopodobnie będziesz mieć mniej błędów.
Działa. Kogo to obchodzi, jeśli używa Vector
? To zdecydowanie najbardziej popularny. W rzeczywistości to jedyna rzecz, jaką mogę wymyślić bez odwoływania się do Google.
http://stackoverflow.com/questions/1386275/why-java-vector-class-is-considered-legabled-or-deprecated – Boris
Czy masz rację? Wiem, że Vector jest zsynchronizowany. Ale: a) narzut na synchronizację jest praktycznie zerowy w przypadku nowoczesnej maszyny JVM z niezamierzonymi blokadami, oraz b) mówimy o kilku dodatkowych procesorach w porównaniu z obciążeniem sieci komunikacyjnej z szyfrowaniem. – dty
Również wektor nie jest tak naprawdę używany w sekcjach o krytycznym znaczeniu, jeśli nie masz zilionów tożsamości i otwierasz nowe połączenia przez cały czas. –
Możesz także chcieć rzucić okiem na IP*Works! SSH z/n oprogramowania.
Nie to, że oceniam narzędzie, ale 899 USD wydaje się drogie, aby pozbyć się "Vector" –
Istnieje nowsza "wersja" Jscha na github. Jest to znaczne ulepszenie istniejącej biblioteki na wiele sposobów. Sprawdź README na stronie i obszerne javadoc, aby uzyskać więcej informacji. https://github.com/vngx/vngx-jsch. Jest również dostępny w większości głównych repetycji maven i jest zgodny z OSGi. Istnieje wiele alternatyw, ale ten jest solidny i uważam, że jest najbardziej aktualny (specyfikacja/kod/dokumentacja). Disclaimer: Jestem współpracownikiem.
Właśnie znalazłem to ... i zobaczyłem, że zrobiłeś te same rzeczy, które zrobiłem, z moją [jsch-documentation ] (http://github.com/epaul/jsch-documentation) wersja (która nie zmienia żadnej funkcjonalności, głównie dodaje dokumentację). Myślę, że głównym powodem, dla którego oryginalny JSch nie jest zaktualizowany, aby korzystać z nowoczesnych klas, generycznych i innych, jest to, że nadal powinien być możliwy do użycia ze starymi maszynami wirtualnymi (i urządzeniami low-end). –
Czy próbowałeś również skontaktować się z oryginalnym autorem? Istnieje [aktywna lista adresowa] (http://sourceforge.net/mailarchive/forum.php?forum=jsch-users). –
Jesteśmy bardziej zainteresowani wydajnością i jakością kodu niż starsze wsparcie.Nie wspominając o niczym, można łatwo odzyskać w razie potrzeby. Oprócz ulepszeń wydajności i zgodności ze specyfikacjami istnieje wiele poprawek i ulepszeń w zakresie użyteczności. Przeważnie jest to przepisywane wewnętrznie, ale z api, które będzie wygodne dla użytkowników jsch, a ponieważ baza kodu pochodzi od jscha, składamy hołd, umieszczając go w nazwie. Nie skontaktowaliśmy się z nikim, to całkowicie niezależne rozwidlenie projektu. – Scott
Tańsza alternatywa handlowa (mój własny produkt do ujawnienia) to edtFTPj/PRO.
Użyłem tej biblioteki https://github.com/shikhar/sshj/. Ma doskonały interfejs API [wymaga Java 6].
Problem ze starymi implementacjami SSH jest taki, że taka implementacja zwykle nie działa dobrze z późniejszymi wersjami oprogramowania serwera SSH. Dlatego należy zapewnić obsługę zapewniającą lepszą kompatybilność i to właśnie oferują rozwiązania z wolnym dostępem do kodu źródłowego. –
Wskazówki są w nazwie ... jeśli jest to open-source i chcesz, aby nowa funkcja obsługiwała "nowsze wersje oprogramowania serwera SSH", po prostu ją zaimplementuj samodzielnie. – dty