Einfache Verbindung zu Linux Server und Datei auslesen

dexxter275

Mitglied
Hallo zusammen,

ich habe eine kleine Aufgabe bekommen.. Ich arbeite mit NetBeans und will ein ganz einfaches kleines Java-Programm schreiben, welches auf einen Linux-Server zugreift und dort lediglich die Datei ausliest und mir dann in dem output fenster den text aus der Datei anzeigt.

Nach Möglichkeit das Passwort und den Benutzernamen in einer Variablen speichern, sodass ich das nicht immer eingeben muss.

Habe verschiedene Sachen schon gefunden im Internet, aber irgendwie war noch nicht das dabei was ich suche... Habe auch einen Quelltext gefunden, der Autor hat jedoch die Jsch-Bibliothek genutzt und die habe ich nicht implementiert.

Ich weiß nicht weiter...
 

turtle

Top Contributor
So ganz habe ich nicht verstanden, was du machen möchtest.

Von wo nach wo möchtest du einen FileTransfer machen?

Von dem was du beschreibst, VERMUTE ich das du von Windows auf einen Linux-Server zugreifen möchtest, um von da eine Datei zu laden und unter Windows (Kommandozeile) anzuzeigen.

Wenn meine Annahme NICHT richtig ist, musst du es genauer beschreiben.

Wenn das richtig ist, ist doch Jsch keine schlechte Wahl. Du musst die JAR-Datei in dein Projekt einbinden und ein Programm nach diesem Vorbild schreiben.
 

dexxter275

Mitglied
Hi,

danke für deine Antwort.

Von Windows in dem Editor Netbeans ein Java-Programm, welches eine Datei von einem Linux Server ausliest und den Inhalt ausgibt. Es gibt im Netbean ein Outpute Feld was die Ausgabe anzeigt. Sprich es öffnet sich keine Kommandozeile o.ä.. Ich hatte einen Quelltext aus dem Internet, habe die JAR-Datei auch eigentlich eingebunden, allerdings hat Netbeans gemeint, dass er das Paket nicht kennt. Außerdem war der Quelltext für einen Webserver gedacht wo er per URL drauf zugegriffen hat. Das ist ja nicht das was ich suche. Ich möchte IP, Username, Passwort und Pfad in dem Quelltext reinschreiben, das Programm starten und als Ausgabe den Inhalt der Datei haben.

Hoffe ist nun verständlich erklärt.
 

turtle

Top Contributor
ja, ok ist nun klarer, danke...

Aber der Link den ich bereits nannte, ist doch eine stinknormale Applikation mit einer main-Methode, die du einfach starten kannst.

Habe gerade kurz das Beispiel geladen und bei mir in Eclipse eingebunden (ich kenne NetBeans nicht). Zumindest kompiliert es ohne Probleme.

Ob's auch funktioniert kann ich nicht testen, da kein Zugriff auf Linux-Server.
 

dexxter275

Mitglied
Hallo,

habe den Link übersehen. Habe jetzt mal den Quelltext genommen und komplett eingefügt. Nun bleibt noch das Problem mit dem Jsch.

Habe das Paket heruntergeladen und in Netbeans implementiert/eingebunden.

Allerdings sagt mir das Programm immernoch, dass das Paket nicht vorhanden ist (package com.jcraf.jsch.* does not exist)

was tun?
 

dexxter275

Mitglied
ziehe meine Aussage zurück. Habe das JAR-File in den falschen Einstellungen eingefügt. Ich teste nun das Programm...

--- edit ---

usage: java ScpFrom user@remotehost:file1 file2
Java Result: -1

das ist die fehlermeldung. finde aber leider nicht die stelle wo ich die daten vom server angeben muss....

noch eine frage zusätzlich:

habe glaube auch hier im forum diesen quelltext gefunden. mit eingebenen user, host und passwort sagt er trotzdem failed weiß wer worans liegt?

Java:
    import com.jcraft.jsch.JSch;
    import com.jcraft.jsch.Session;
     
     
    public class Main {
     
        
        public static void main(String[] arg){
           
           
            try{
                  String user="hier user";
                  String host="hier host";
                  JSch jsch=new JSch();
                  Session session=jsch.getSession(user, host, 22);
                  session.setPassword("hier passwort");
                  session.setConfig("StrictHostKeyChecking", "yes");
                  session.connect();
                  System.out.println("Connected");
                  
                  
                              
            } catch (Exception e) {
                System.out.println("Failed");
            }
     
           
        }
     
    }
 
Zuletzt bearbeitet:

Spitfire777

Bekanntes Mitglied
usage: java ScpFrom user@remotehost:file1 file2
Java Result: -1

das ist die fehlermeldung. finde aber leider nicht die stelle wo ich die daten vom server angeben muss....
Das Programm sagt genau was du machen musst. Du musst das Programm nach dem oben stehenden Muster mit den entsprechenden Parametern ausführen. Wenn du Eclipse verwendest, kannst du die Parameter in den Run Configurations setzen. :)

1. Parameter: user@remotehost:file1
2. Parameter: file2

Ich rate dir aber, mit deinem unten stehenden Ansatz weiter zu machen, da bist du schon auf dem richtigen Weg.

habe glaube auch hier im forum diesen quelltext gefunden. mit eingebenen user, host und passwort sagt er trotzdem failed weiß wer worans liegt?
Ja. Liegt am Copy&Paste. Er sagt "Failed", weils du es bzw. der ursprüngliche Autor so programmiert hat. ;)
Java:
...
} catch (Exception e) {
    System.out.println("Failed");
}

Diese Zeile
Java:
System.out.println("Failed");
in
Java:
e.printStackTrace();
umändern und den Output posten.

Ich glaube aber schon zu wissen (bin mir nicht sicher), woran es liegt, dass es fehlschlägt.
Diese Zeile
Java:
session.setConfig("StrictHostKeyChecking", "yes");
in
Java:
session.setConfig("StrictHostKeyChecking", "no");
umändern.

Schreib, obs funktioniert hat. :)
 
Zuletzt bearbeitet:

dexxter275

Mitglied
Guten Morgen,

danke für deine Hilfe. Ja ich errinere mich wieder.

Java:
e.printStackTrace();

das gleiche Problem hatte der Autor aus dem Thema wo ich den Quelltext her habe auch :p

Ich gehe stark davon aus, dass es geht. Kann es aber leider erst morgen früh testen. Werde mich morgen um 7 mal melden :)

dankee :))
 

dexxter275

Mitglied
Guten Morgen,

herzlichen Dank! Die Verbindung funktioniert nun!! :))

Jetzt muss ich nur noch irgendwie versuchen in einem Verzeichnis auf dem Server eine Datei auslesen zu können.

Hast du das vielleicht eins, zwei Tipps für mich :D?

Hier nochmal mein momentaner Code... Bisschen was aus dem Internet und aus dem Forum hier zusammen gewürfelt. Connect funktioniert. Datei auslesen noch nicht so ganz :D


Java:
    import org.junit.Test;     
    import com.jcraft.jsch.JSch;
    import com.jcraft.jsch.JSchException;
    import com.jcraft.jsch.Session;
    import java.io.File;
import java.io.FileReader;
import java.io.IOException;

    
    public class Main {

    @Test
    
     private static void ladeDatei(String datName) {

        File file = new File(datName);

        if (!file.canRead() || !file.isFile())
            System.exit(0);

        FileReader fr = null;
        int c;
        StringBuffer buff = new StringBuffer();
        try {
            fr = new FileReader(file);
            while ((c = fr.read()) != -1) {
                buff.append((char) c);
            }
            fr.close();

        } catch (IOException e) {
            e.printStackTrace();
        }

        System.out.println(buff.toString());
    } 
    
    
        public static void main(String[] arg) throws Exception{
           
           
            try{
                  String user="hier name";
                  String host="IP.IP.IP.IP";
                  JSch jsch=new JSch();
                  Session session=jsch.getSession(user, host, 22);
                  session.setPassword("hier das passwort hin");
                  session.setConfig("StrictHostKeyChecking", "no");
                  session.connect();
                  System.out.println("Connected");    
                 
                      String dateiName = "/ordner/unterordner/datei.txt";   //datei.txt liegt auf dem Server
                      ladeDatei(dateiName);      
                     
                  session.disconnect();
                              
                 } catch (JSchException e) {
                     e.printStackTrace();
                 } 
            
                                                                
  }
  }




MfG
 
Zuletzt bearbeitet:

dexxter275

Mitglied
Hat irgendjemand eine Idee worans liegen könnte, dass es nicht funktioniert?

Habe noch was im hier im Forum gefunden:

Ausgabe ist allerdings der lokale Ordner wo Netbeans installiert ist und nicht auf dem Server....

Java:
      Process proc = Runtime.getRuntime().exec("ls");
      BufferedReader in = new BufferedReader(new InputStreamReader(proc.
            getInputStream()));
      String strLine = "";
      while ( ( strLine = in.readLine() ) != null)
      {
           System.out.println(strLine);
      }
 
Zuletzt bearbeitet:

Sen-Mithrarin

Gesperrter Benutzer
unabhängig von dem was du machst ein paar anmerkungen

1) man sollte zur sicherheit den ssh-deamon auf einem anderen port laufen lassen
2) auch sollte man den sshd so einstellen das er nicht über passwort-auth sondern mit key-files arbeitet was die sicherheit noch mal deutlich erhöt
3) man sollte host-key-checking nutzen um auch sicher zu gehen das man sich mit dem korrekten server verbindet

die lib sollte entsprechende möglichkeiten anbieten
 

turtle

Top Contributor
Ausgabe ist allerdings der lokale Ordner wo Netbeans installiert ist und nicht auf dem Server....

Process proc = Runtime.getRuntime().exec("ls");
Wundert mich nicht, wenn du 'ls' lokal ausführst, oder?

Im Beispielcode steht da sogar ein Kommentar zum Kommando, was du mal probieren solltest. Aber wie gesagt kein Zugang zu einer Unix-Box.

Java:
// exec 'scp -f rfile' remotely
      String command="scp -f "+rfile;
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Einfache Socket Verbindung Netzwerkprogrammierung 2
M HTTP Einfache Restanfrage Netzwerkprogrammierung 4
Dit_ HTTP Einfache HTTP-Anfrage Netzwerkprogrammierung 6
S Socket Einfache Client/Server-Anwendung Netzwerkprogrammierung 11
Y einfache TCP/IP Anwendung Netzwerkprogrammierung 4
S Einfache Server Frage Netzwerkprogrammierung 5
E einfache Frage: wie Fehler untersuchen mit Tomcat Netzwerkprogrammierung 5
E Einfache Frage zu servlets und netbeans 6.5 Netzwerkprogrammierung 41
D Einfache Applet-Servlet-Kommunikation Netzwerkprogrammierung 5
G einfache Frage zu ServerSocket ... Netzwerkprogrammierung 5
X Kann ich einen Client/Server verbindung hinkriegen die mir alle paar Sekunden die aktuellen Daten per Realtime zuschickt ? Netzwerkprogrammierung 9
F Verbindung zu einem LDAP Server über Java Netzwerkprogrammierung 4
D Verbindung zu Geräten mit gleicher IP aber in unterschiedlichen VLans aufbauen Netzwerkprogrammierung 2
M Socket Socket lehnt Verbindung ab Netzwerkprogrammierung 3
IAmFloppy Socket Nachstellen der Verbindung Netzwerkprogrammierung 6
M Socket Verbindung Matlab(Server) Java(Client) Netzwerkprogrammierung 1
M Socket peer to peer Verbindung zwischen Java und Matlab Netzwerkprogrammierung 0
S Bluetooth Verbindung zwischen Android app und Raspberry Pi 3 Netzwerkprogrammierung 1
S Peer2Peer Verbindung trotz NAT Netzwerkprogrammierung 2
T VPN-Verbindung über Java Netzwerkprogrammierung 4
Aruetiise Socket Verbindung Überprüfen Netzwerkprogrammierung 18
F Socket Verbindung mit Verschlüsselung und Authentifierzung Netzwerkprogrammierung 1
F Probleme mit Connection Reset bei Telnet Verbindung Netzwerkprogrammierung 1
U Client Soap Verbindung wieder schließen Netzwerkprogrammierung 0
M Verbindung zwischen zwei Pc in dem Selben Netzwerk Netzwerkprogrammierung 8
P Socket Socket-Verbindung Input sehr langsam Netzwerkprogrammierung 1
S FTP Verbindung zu einem BS2000 Großrechner mit Commons Net Netzwerkprogrammierung 0
F Verbindung zwischen Server und handy Netzwerkprogrammierung 1
M TCP Verbindung Byte-weise lesen? Netzwerkprogrammierung 5
Shams Problem mit Eventbus in Verbindung mit Server Netzwerkprogrammierung 0
Z Verbindung zwischen 2 Rechnern über ServerSockets nicht möglich Netzwerkprogrammierung 3
F TCP Client, verbindung aufrecht halten Netzwerkprogrammierung 0
I Swing hängt sich auf bei Verbindung zum Server Netzwerkprogrammierung 3
P RMI Hohe CPU Last RMI Verbindung Netzwerkprogrammierung 4
J Pc - Handy Verbindung? Netzwerkprogrammierung 3
M Socket 2x Proxy multithread-server mit Cross Verbindung Netzwerkprogrammierung 0
T Verbindung zum Server fehlgeschlagen Netzwerkprogrammierung 7
B Nach Verbindung gleich ObjectStream empfangen Netzwerkprogrammierung 1
R Dauerhaft offene Socket-Verbindung? Netzwerkprogrammierung 3
P server - client verbindung (anfänger) Netzwerkprogrammierung 8
G Socket Socket verbindung für Chat System Netzwerkprogrammierung 3
S Socket Socket Verbindung wiederherstellen Netzwerkprogrammierung 16
T Socket Bidirektionale Verbindung mit Sockets Netzwerkprogrammierung 8
N (TCP) Verbindung ohne Portforwarding Netzwerkprogrammierung 12
N Lan-Verbindung erstellen Netzwerkprogrammierung 2
H Socket Java Chat - Verbindung zum Server fehlgeschlagen. Netzwerkprogrammierung 5
A TCP über UDP Verbindung? Netzwerkprogrammierung 10
D TCP Verbindung (Java Client und Visual Basic Server) Netzwerkprogrammierung 12
E Verbindung zu SQL-Datenbank auf einem Server Netzwerkprogrammierung 13
S Socket Applet Client bekommt keine GLOBALE Verbindung zum Server Netzwerkprogrammierung 25
D Server Client Verbindung - Unexpected End of File - Invalid HTTP Response Netzwerkprogrammierung 4
V NullPointerException bei Verbindung zu RabbitMQ-Server Netzwerkprogrammierung 4
B FTP commons net verschlüsselte verbindung Netzwerkprogrammierung 11
C Verbindung zu einem Hostrechner über das Internet herstellen Netzwerkprogrammierung 15
T Socket Client versucht zyklische Verbindung zum Server Netzwerkprogrammierung 4
X Über eine Socket-Verbindung Arrays übergeben Netzwerkprogrammierung 5
P Socket Verbindung über das Internet Netzwerkprogrammierung 2
A Socket Socket Verbindung unterbrochen --> keine Exception Netzwerkprogrammierung 7
S SVNKit - Verbindung zum Repository trennen? Netzwerkprogrammierung 2
P Socket neuer Client - neue(r) Socket/Verbindung geöffnet? Netzwerkprogrammierung 6
M Problem mit Socket-Verbindung Netzwerkprogrammierung 2
X SSH Verbindung zu Remote Datenbank Netzwerkprogrammierung 2
S TCP Verbindung zu Beamer Netzwerkprogrammierung 8
Y server client socket verbindung übers internet aufbauen Netzwerkprogrammierung 8
M ganymed-ssh2.har: ftp-Verbindung über ftp-Proxy Netzwerkprogrammierung 2
D Verbindung zw. zwei Rechnern funzt nicht Netzwerkprogrammierung 5
F Socket Socket Verbindung Netzwerkprogrammierung 10
E Server schließt einfach verbindung? Netzwerkprogrammierung 6
Shoox VPN-Verbindung für Datenbankzugriff Netzwerkprogrammierung 2
X Socket Handy/PC Verbindung unterscheiden Netzwerkprogrammierung 18
O Telnet verbindung Netzwerkprogrammierung 4
Dit_ UDP Verbindung durch Proxy Netzwerkprogrammierung 4
H Socket Client server,verbindung läst sich nicht abbauen&code optimierung Netzwerkprogrammierung 3
V Verbindung zweier Rechner über das Internet mit Sockets Netzwerkprogrammierung 8
M HTTP HTTPS-Verbindung mittels Java und Javascript Netzwerkprogrammierung 2
N Verbindung zu Fritzbox Socket/Telnet ??? Netzwerkprogrammierung 5
multiholle RMI Verbindung Linux <-> Windows Netzwerkprogrammierung 4
S netzwerkprotokoll auf basis einer tcp verbindung erstellen Netzwerkprogrammierung 9
S SSH Verbindung mit j2ssh Netzwerkprogrammierung 3
H Socket Mit Applet Verbindung zu eigener Website aufbauen Netzwerkprogrammierung 4
H Socket Socket verbindung mit einem TeamSpeak2 Server Netzwerkprogrammierung 5
H TCP verbindung hinter NAT Netzwerkprogrammierung 28
G TCP SSL Verbindung Netzwerkprogrammierung 3
P Java / My-Sql Verbindung herstellen Netzwerkprogrammierung 6
W Socket Shellscript über ssh Verbindung aufrufen Netzwerkprogrammierung 14
N Socket Verbindung wird immer verweigert Netzwerkprogrammierung 5
Dit_ UDP-Verbindung, DatagramPakete Netzwerkprogrammierung 3
S Socket verbindung trennen Netzwerkprogrammierung 3
D Verbindung zu einem Server - POST Netzwerkprogrammierung 2
musiKk SSL-Verbindung mit Client-Zertifikat (Private Key) scheitert Netzwerkprogrammierung 13
D Socketprogrammierung Verbindung C++=>Java Netzwerkprogrammierung 23
B Probleme mit FTP verbindung Netzwerkprogrammierung 22
T Mac Adresse über Socket Verbindung abfragen? Netzwerkprogrammierung 9
L SSL Verbindung aber Server wird erst im Programm festgelegt Netzwerkprogrammierung 4
L Https Verbindung wird aus jar heraus nicht aufgebaut Netzwerkprogrammierung 12
M Verbindung über Proxy// Problem mit Outputstream bei URLConn Netzwerkprogrammierung 5
O TCP Socket-Verbindung überprüfen Netzwerkprogrammierung 4
F Peer to Peer Verbindung zwischen mehreren Clients? Netzwerkprogrammierung 8
F applet verbindung zum server Netzwerkprogrammierung 6
T Verbindung über das Internet Netzwerkprogrammierung 2

Ähnliche Java Themen

Neue Themen


Oben