私はWindows上でJavaプログラムを実行しています。私は、ローカルマシンではなくUnixマシンでディレクトリを選択する必要があります。エクスプローラを開いてSSH接続のあるディレクトリを選択する方法は?
私はこのUnixマシンにSSH接続しています.BufferedReaderのおかげで、 "pwd"のようなコマンドの結果を得ることができます。ここでは、コードです:今
import com.jcraft.jsch.*;
import sshtest.Exec.MyUserInfo;
import java.io.*;
public class SSHConnection {
public static void main(String[] args) {
try {
JSch jsch = new JSch();
String user = "myUserId";
String host = "unixmachines.company.corp";
Session session = jsch.getSession(user, host, 22);
UserInfo ui = new MyUserInfo();
session.setUserInfo(ui);
session.connect();
String command = "pwd";
Channel channel = session.openChannel("exec");
InputStream in = channel.getInputStream();
((ChannelExec)channel).setCommand(command);
((ChannelExec)channel).setErrStream(System.err);
channel.connect();
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
String line;
int index = 0;
while ((line = reader.readLine()) != null)
{
System.out.println(++index + " : " + line);
}
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()){
if(in.available()>0) continue;
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);
}
}
}
、私はローカルマシン内のディレクトリ(Windowsの場合)のJButtonをクリックして選択するようにエクスプローラを開くには、このコードを使用します。それ以来
JFileChooser chooser = new JFileChooser();
chooser.setCurrentDirectory(new java.io.File(""));
chooser.setDialogTitle("choosertitle");
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
chooser.setAcceptAllFileFilterUsed(false);
if (chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
System.out.println("getCurrentDirectory(): " + chooser.getCurrentDirectory());
selectLabel.setText(chooser.getSelectedFile().toString());
System.out.println("getSelectedFile() : " + chooser.getSelectedFile());
} else {
System.out.println("No Selection ");
}
を、I SSH接続のおかげで、 "java.io.File(" ")"をUnixマシンへのパスで置き換える最後のコードの2行目を修正する必要があると考えてください。
SSH接続(例えば「pwd」コマンド)を使ってパスを取得すると、ローカルマシンではなくエクスプローラを開くために、2番目のコードをどのように適応させることができますか?
ありがとう、私は十分な情報を与えていないかどうか私に尋ねることを躊躇しないでください。