如何在Windows上通过Java程序与Unix终端通信

如何在Windows上通过Java程序与Unix终端通信,java,linux,unix,ssh,Java,Linux,Unix,Ssh,我正在Windows PC上编写一个Java程序,需要与我们公司Unix机器上的多个应用程序进行通信 我开发的程序包含一个带有JButton的Swing接口。目前,当我点击按钮时,我可以在我的机器上选择一个类似“C:\Users\MyUserName\Documents”的目录。以下是代码示例: selectButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEven

我正在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服务”),而不是本地机器上的目录。因此,当我点击按钮时:

  • 我需要知道我们公司的用户组才能继续。在Unix终端中,我们可以使用命令“echo$WORK\u GROUP”来执行此操作。我想将此用户的组保存为变量“user\u group”

  • 我想在那个Unix机器上选择一个目录“workgroug/user\u group/username/”

我如何使用ssh命令和修改代码来实现这一点


我希望一切都是清楚的和解释,不要犹豫,问我,如果你需要更多的信息。谢谢您的时间。

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

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


因此,您只需要通过JAVA访问unix设备。有很多图书馆在做这项工作。 请看这里:


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

投票结束,因为范围太广。您知道一个可能的解决方案(在Java中使用SSH),但没有尝试实现它。实际上,我发现了一些使用SSH的示例,但其中似乎没有一个可以做我想做的事情或帮助我做我想做的事情。这就是为什么我要求确切的问题有一些提示。我知道你的问题是什么,但你的问题的答案是使用一个用于Java的库,它可以执行ssh,也可以使用一个执行scp或ftp的库。答案只是推荐那些图书馆,可以通过谷歌搜索找到。没有理由投反对票,我是在第一个问题出现的时候打这个问题的。不要发脾气,不要对别人无礼!我刚刚投票支持你;)。我们对解决方案的想法是一致的。