Ich soll eine Verbindung zu einem Unix-Server herstellen, dann zu dem bestimmten Ordner (der Zugriffsbeschränkungen hat) gehen und die Dateidetails von dort abrufen. Für den gleichen, der Code, den ich geschrieben habe, istUnix-Befehle werden, cd und ls -la über Java-Code ausgeführt werden
try{
Session session = new JSch().getSession("username", "host");
session.setPassword("password");
java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);
session.connect();
Channel channel=session.openChannel("exec");
//channel.setInputStream(null);
((ChannelExec)channel).setCommand("cd a/b/node01/c.ear && ls -la");
channel.connect();
channel.run();
InputStream in = channel.getInputStream();
System.out.println(channel.isConnected());
byte[] tmp = new byte[1024];
while (true)
{
while (in.available() > 0)
{
int i = in.read(tmp, 0, 1024);
if (i < 0)
break;
System.out.print(new String(tmp, 0, i));
}
if (channel.isClosed())
{
System.out.println("exit-status: " + channel.getExitStatus());
break;
}
}
channel.disconnect();
session.disconnect();
}
catch(Exception exception){
System.out.println("Jiska darr tha whi hua "+exception);
}
Ich bekomme nicht die Liste der Dateien, die an dem Standort vorhanden sind. Die Ausgabe, die ich erhalte ist
wahr
Ausfahrt-Status: 1
Wie kann ich die gewünschte Ausgabe zu erhalten?
Ist "cd a/b/node01 /" wirklich auf ein gültiges Verzeichnis zeigt? Hast du absolute Pfade ausprobiert? – GhostCat
Ich würde empfehlen, Kanalfehlerstrom zu lesen –
Ja, das ist ein gültiges Verzeichnis. Wenn ich über Putty dasselbe mache, sehe ich nach dem Befehl ls -la die Dateien im Verzeichnis. –