如何从Windows上的Java程序与Unix终端进行通信



我正在Windows PC上编写一个Java程序,该程序需要与我们公司的Unix机器上的多个应用程序进行通信。

我开发的程序包含一个带有 JButton 的 Swing 接口。目前,当我单击按钮时,我可以在我的机器上选择一个目录,例如"C:\Users\MyUserName\Documents"。这是代码示例:

selectButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
// Choose a directory 
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());
System.out.println("getSelectedFile() : " + chooser.getSelectedFile());
} else {
System.out.println("No Selection ");
}
}
});

现在我想在另一台使用 Unix 的机器上选择一个目录(假设机器名称是"unix-service"(,而不是本地机器上的目录。所以当我点击按钮时:

  • 我需要知道我们公司的用户组才能继续。在 Unix 终端中,我们可以使用命令"echo $WORK_GROUP"来完成。我想将此用户的组另存为变量"user_group">

  • 我想在该Unix机器上选择一个目录"workgroug/user_group/username/"。

如何使用 ssh 命令并调整我的代码来做到这一点?

我希望一切都清楚并得到解释,如果您需要更多信息,请随时问我。谢谢你的时间。

您可以使用以下库中的 java ssh API 连接到远程设备。

http://www.jcraft.com/jsch/

这里提供了一个使用 SSH 在远程 Linux/UNIX 系统上执行命令的很好的例子

http://www.jcraft.com/jsch/examples/Exec.java.html

所以,你只需要通过JAVA访问一个unix盒子。有许多图书馆在做这项工作。 看看这里: http://www.jcraft.com/jsch/

"JSch是SSH2的纯Java实现。JSch允许你连接到sshd服务器并使用端口转发,X11转发,文件传输等,你可以将其功能集成到你自己的Java程序中。

最新更新