SFTP Verbindung nicht möglich

Cewox

Mitglied
Hallo allerseits,

ich habe dies jetzt mal in den Anfängerbereich getan, da ich denke, dass für euch das Problem recht einfach ist. Ich selber stehe was Programmierung angeht recht am Anfang.

Ich habe jetzt das Buch "Programmieren lernen mit Java" von Hans-Peter Habelitz durch und finde es echt gut für Anfänger. jedoch kamen am Ende nun die Datenbanken.

So habe ich kein Problem gehabt, doch nun möchte mein Chef, dass ich meine Datenbankdateien auf einen SFTP Server lade und zum bearbeiten herunterlade und nach dem Bearbeiten automatisch wieder hochlade.

Ich habe irgendwie das Problem überhaupt eine Verbindung aufbauen zu können. habe jetzt viele Beispiele durch und viele Versionen ausprobiert.

Meistens habe ich die Fehlermeldung bekommen, dass die Hauptklasse nicht initialisiert werden konnte. Nun habe ich eine Version, wo ich den Fehler

"Exception in thread "main" java.lang.NoClassDefFoundError: com/jcraft/jsch/JSch"

bekomme.

ich habe eine Pom.xml mit folgendem Inhalt:

[CODE lang="xml" title="Pom.xml"]<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>medium_java</artifactId>

<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>com.jcraft</groupId>
<artifactId>jsch</artifactId>
<version>1.0.7</version>
<optional>true</optional>
</dependency>
</dependencies>

</project>[/CODE]

und hier meine Main, Benutzername etc. natürlich geändert.

Java:
import com.jcraft.jsch.*;

public class Main {

    public static void main(String[] args)    {
        
        String localPath     = "\\Users\\ich\\eclipse-workspace\\JavaUebung13";
        String fileName        = "KontaktDB.script";
        String sftpPath        = "/";
        String sftpHost        = "/meinHost";
        String sftpPort     = "22";
        String sftpUser        = "meinBenutzername";
        String sftpPass        = "meinKennwort";
        
        try {
            
            JSch jsch = new JSch();
            
            Session session = jsch.getSession(sftpUser, sftpHost, Integer.valueOf(sftpPort));
            session.setConfig("StrictHostKeyChecking", "no");
            session.setPassword(sftpPass);
            
            System.out.println("Connecting");
            
            session.connect();
            
            System.out.println("Estableshed Session");
            
            Channel channel = session.openChannel("sftp");
            ChannelSftp sftpChannel = (ChannelSftp) channel;
            sftpChannel.connect();
            
            System.out.println("Opened sftp Channel");
            
            sftpChannel.disconnect();
            session.disconnect();
            
            System.out.println("Disconnected");
            
        } catch(Exception e){
            e.printStackTrace();
        }
        
    }
}

genaue Fehlermeldung:

Exception in thread "main" java.lang.NoClassDefFoundError: com/jcraft/jsch/JSch
at Main.main(Main.java:17)
Caused by: java.lang.ClassNotFoundException: com.jcraft.jsch.JSch
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
... 1 more

Mit FileZilla kann ich ohne Probleme auf den Host zugrifen und arbeiten. Ich hoffe ihr könnt mir dabei helfen.

beste Grüße
CEWOX
 
Die Abhängigkeit kann er so auch gar nicht finden.
a) optional ist auf true gesetzt. Wenn Du die Bibliothek nutzen willst, dann lösch das raus.

Wenn Du das gemacht hast, dann bekommst Du das Problem, dass die Abhängigkeit nicht gefunden wird. Und dann kommen wir zu

b) Nimm eine Version, die vorhanden ist. Schau dazu einfach einmal die Webseite an: https://mvnrepository.com/artifact/com.jcraft/jsch/0.1.55

mvnrepository.com ist die Webseite, bei der ich Abhängigkeiten nachschlage. Da bekommt man nicht nur Maven Central sondern auch noch ein paar weitere Repositories angezeigt.
 
@kneitzel
besten Dank, das hat mir schon weitergeholfen. Er meldet jetzt zwar UnknownHost, aber da werde ich erstmal weiterschauen. Ich würde hier sonst nochmal schreiben wenn ich da nochmal einen Denkanstoß benötige.
 
@kneitzel
besten Dank, das hat mir schon weitergeholfen. Er meldet jetzt zwar UnknownHost, aber da werde ich erstmal weiterschauen. Ich würde hier sonst nochmal schreiben wenn ich da nochmal einen Denkanstoß benötige.
Dazu noch einfach der Hinweis:
String sftpHost = "/meinHost";

Host ist der Name des Systems ist nur der Hostname. Da ist also kein / oder so drin. Also da wäre sowas wie system.somedomain.com oder eine IP Adresse enthalten.

(Aber evtl. ist der Hinweis unnötig - du wirst die Werte für den Post im Forum angepasst haben und die Chance ist groß, dass sich da das / nur eingeschlichen hat.)
 
Dazu noch einfach der Hinweis:
String sftpHost = "/meinHost";

Host ist der Name des Systems ist nur der Hostname. Da ist also kein / oder so drin. Also da wäre sowas wie system.somedomain.com oder eine IP Adresse enthalten.

(Aber evtl. ist der Hinweis unnötig - du wirst die Werte für den Post im Forum angepasst haben und die Chance ist groß, dass sich da das / nur eingeschlichen hat.)
Hi,

besser spät als nie, aber ja, ich habe die Daten geändert 😉
das System läuft auch nun und ich bedanke mich für die Hilfe.

Beste Grüße und noch ein frohes neues Jahr.

Dieses Thema kann geschlossen werden
 

Neue Themen


Zurück
Oben