G
Guest
Gast
Hallo,
ich möchte folgende Methode abändern:
Momentan öffnet die Methode ein JOptionPane, in dem ich mein command eingeben kann. Habe aber dafür eine properties Datei, in der das command eingetragen ist. Ich übergebe der Methode den user, host und mein command.
Wie muss ich jetzt aber die Methode abändern, damit mein command aus der properties benutzt wird?
Bis jetzt sieht mein Code so aus:
Hat jemand eine Idee?
MfG Patrick
ich möchte folgende Methode abändern:
Code:
public static void main(String[] arg){
try{
JSch jsch=new JSch();
String host=JOptionPane.showInputDialog("Enter username@hostname",
System.getProperty("user.name")+
"@localhost");
String user=host.substring(0, host.indexOf('@'));
host=host.substring(host.indexOf('@')+1);
Session session=jsch.getSession(user, host, 22);
/*
String xhost="127.0.0.1";
int xport=0;
String display=JOptionPane.showInputDialog("Enter display name",
xhost+":"+xport);
xhost=display.substring(0, display.indexOf(':'));
xport=Integer.parseInt(display.substring(display.indexOf(':')+1));
session.setX11Host(xhost);
session.setX11Port(xport+6000);
*/
// username and password will be given via UserInfo interface.
UserInfo ui=new MyUserInfo();
session.setUserInfo(ui);
session.connect();
String command=JOptionPane.showInputDialog("Enter command",
"set|grep SSH");
Channel channel=session.openChannel("exec");
((ChannelExec)channel).setCommand(command);
// X Forwarding
// channel.setXForwarding(true);
//channel.setInputStream(System.in);
channel.setInputStream(null);
//channel.setOutputStream(System.out);
//FileOutputStream fos=new FileOutputStream("/tmp/stderr");
//((ChannelExec)channel).setErrStream(fos);
((ChannelExec)channel).setErrStream(System.err);
InputStream in=channel.getInputStream();
channel.connect();
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;
}
try{Thread.sleep(1000);}catch(Exception ee){}
}
channel.disconnect();
session.disconnect();
}
catch(Exception e){
System.out.println(e);
}
}
Momentan öffnet die Methode ein JOptionPane, in dem ich mein command eingeben kann. Habe aber dafür eine properties Datei, in der das command eingetragen ist. Ich übergebe der Methode den user, host und mein command.
Wie muss ich jetzt aber die Methode abändern, damit mein command aus der properties benutzt wird?
Bis jetzt sieht mein Code so aus:
Code:
public void restartServer(String user, String host, String serverCommand)
{
try
{
JSch jsch = new JSch();
// String host = JOptionPane.showInputDialog("Enter username@hostname", System.getProperty("user.name")
// + "@localhost");
// String user = host.substring(0, host.indexOf('@'));
// host = host.substring(host.indexOf('@') + 1);
Session session = jsch.getSession(user, host, 22);
/*
String xhost="127.0.0.1";
int xport=0;
String display=JOptionPane.showInputDialog("Enter display name",
xhost+":"+xport);
xhost=display.substring(0, display.indexOf(':'));
xport=Integer.parseInt(display.substring(display.indexOf(':')+1));
session.setX11Host(xhost);
session.setX11Port(xport+6000);
*/
// username and password will be given via UserInfo interface.
UserInfo ui = new MyUserInfo();
session.setUserInfo(ui);
session.connect();
Channel channel = session.openChannel("exec");
((ChannelExec) channel).setCommand(serverCommand);
// X Forwarding
// channel.setXForwarding(true);
//channel.setInputStream(System.in);
channel.setInputStream(null);
//channel.setOutputStream(System.out);
//FileOutputStream fos=new FileOutputStream("/tmp/stderr");
//((ChannelExec)channel).setErrStream(fos);
((ChannelExec) channel).setErrStream(System.err);
InputStream in = channel.getInputStream();
channel.connect();
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;
}
try
{
Thread.sleep(1000);
}
catch (Exception ee)
{
}
}
channel.disconnect();
session.disconnect();
}
catch (Exception e)
{
System.out.println(e);
}
}
Hat jemand eine Idee?
MfG Patrick