一旦我有了SQLServer的名称,如何用java列出它的数据库?

一旦我有了SQLServer的名称,如何用java列出它的数据库?,java,sql,database,Java,Sql,Database,我试图通过Java使用osql-L命令填充网络上SQLServer的下拉列表。然后,用户将选择服务器并键入用户名和密码。我还需要用该服务器上的数据库填充另一个列表。关于如何使用java实现这一点,有什么想法吗?如果可能,请给出java代码 多谢各位 public class SQL implements ActionListener{ public static void main(String[] args) throws Exception{ String[] str = new

我试图通过Java使用
osql-L
命令填充网络上SQLServer的下拉列表。然后,用户将选择服务器并键入用户名和密码。我还需要用该服务器上的数据库填充另一个列表。关于如何使用java实现这一点,有什么想法吗?如果可能,请给出java代码

多谢各位

public class SQL implements ActionListener{

public static void main(String[] args) throws Exception{
    String[] str = new String[] {"cmd.exe", "/c", "osql", "-L"  };
    Runtime rt = Runtime.getRuntime();
    try{

        Process p = rt.exec(str);
        InputStream is =p.getInputStream();
        InputStream err = p.getErrorStream();
        InputStreamReader in = new InputStreamReader(is);

        StringBuffer sb = new StringBuffer();
        BufferedReader buff = new BufferedReader(in);

        //clearing away white space and "Servers"
        buff.readLine();
        buff.readLine();


        String line = buff.readLine();
        JComboBox servers = new JComboBox();
        while (line != null){
            servers.addItem(line.trim());
            line =buff.readLine();
        }
        SQL sql = new SQL();

        servers.addActionListener(sql);
        JOptionPane.showMessageDialog(null, servers);

    }catch( Exception ex )
    {
        ex.printStackTrace();   
    }
}


@Override
public void actionPerformed(ActionEvent e) {
    JComboBox cb = (JComboBox)e.getSource();
    String ser = (String)cb.getSelectedItem();


}
}

这个网站帮助很大

public static void main(String[] args) {
        String[] str = new String[] {"cmd.exe", "/c", "sqlcmd -U abc -P abc -q sp_databases"};

        Runtime rt = Runtime.getRuntime();
        try{

            String ss = null;
            Process p = rt.exec(str);

            BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream()));

            BufferedReader stdError = new BufferedReader(new InputStreamReader(p.getErrorStream()));

            //obj.exec(ss);
            System.out.println("Here is the standard output of the command:\n");
            while ((ss = stdInput.readLine()) != null) {
                System.out.println(ss);
            }

            System.out.println("Here is the standard error of the command (if any):\n");
            while ((ss = stdError.readLine()) != null) {
                System.out.println(ss);
            }

        }catch( Exception ex )
        {
            ex.printStackTrace();   
        }
    }