我正在使用Netbeans 8.1和JavaFX场景构建器制作App。我需要在点击按钮上执行ssh连接测试,我在https://code.google.com/p/sshxcute/使用了sshexec jar,我在我的应用程序中尝试了它,请参阅下面的代码片段
SSHExec ssh = null;
int val = 0;
String getURLFromUI=txtServerUrl.getText().trim();
String getUsernameFromUI=txtUserName.getText().trim();
String getPasswordFromUI=pwdPassword.getText().trim();
System.out.println("URL : " +getURLFromUI);
System.out.println("User : " +getUsernameFromUI);
System.out.println("Pass : " +getPasswordFromUI);
try {
ConnBean cb = new ConnBean(getURLFromUI, getUsernameFromUI,getPasswordFromUI);
ssh = SSHExec.getInstance(cb);
boolean connected = ssh.connect();
if(connected){
val++;
showBuildServerStatus.setText("Connection Done!!!!!!" +val);
}else{
val++;
showBuildServerStatus.setText("Connection Failed!!!!!!"+val);
}
// ssh = SSHExec.getInstance(cb1);
}
catch (Exception e)
{
System.out.println(e.getMessage());
e.printStackTrace();
}
finally
{
ssh.disconnect();
}
当我运行我的应用程序时,发现以下问题:
预期:每次点击都应该更新值。
E.g。如果用户在第一次在控制台中打印的行下方提供1.1.1.1
:
Trying to connect root@1.1.1.1
在secoond中,try用户在控制台上打印的行下方提供2.2.2.2
:
Trying to connect root@1.1.1.1
所以,我担心的是:
我的代码是对的吗?我错过了一些重要的内容吗?
在每次点击时,都应该对给定的值进行连接。
P.S。 :在system.print中显示正确的值(根据用户输入),但是当ssh.connect();从SSHEXEC api调用的方法显示了第一个传递的值。
如果问题不清楚,请告诉我。
更新1:
通过使用https://code.google.com/p/sshxcute/issues/detail?id=8上面的补丁问题得到解决。但我关心的另一件事是
成功执行脚本后,显示Now wait 5 seconds to begin next task ...
并再次执行脚本。见下面的代码:
CustomTask sampleTask = new ExecCommand("/usr/checkoutcode.sh");
Result rs = ssh.exec(sampleTask);
任何人都知道为什么会发生这种废话?
答案 0 :(得分:0)
关于第一个问题,请查看example on the MSDN问题以及
中提到的解决方案第二个问题可以通过设置来解决
SSHExec.setOption(IOptionName.INTEVAL_TIME_BETWEEN_TASKS, 50l);
到
header <- c("symbol", "gene1", "gene2", "gene3")
study1 <- c("0.06", "0.01", "NA", "NA")
study2 <- c("0.09", "NA", "0.02", "0.08", "0.07")
study3 <- c("0.09", "NA", "NA", "0.1")
DF<- data.frame(header, study1, study2, study3, stringsAsFactors=FALSE)
DF
ID study1 study2 study3
1 gene1 0.06 0.09 0.09
2 gene2 0.01 NA NA
3 gene3 NA 0.02 NA
4 gene4 NA 0.07 0.1
您可以在上述链接的第4.5节中找到此方法。