osql -S не дает мне ожидаемых результатов
Я пытаюсь написать программу на Java, которая использует osql
создать список баз данных на сервере. Мой код выглядит следующим образом:
public Object[] findDataBases(String server, String user, String passwd){
str = new String[] {"cmd.exe", "/c", "osql", " -S ",
server, " -U", user, "&&", "-P ", passwd,
"&&", "sp_databases","&&", "GO"
};
Runtime rt = Runtime.getRuntime();
try{
Process p = rt.exec(str);
InputStream is = p.getInputStream();
InputStream err = p.getErrorStream();
InputStreamReader in = new InputStreamReader(is);
InputStreamReader er = new InputStreamReader(err);
BufferedReader buff = new BufferedReader(in);
String line = buff.readLine();
ArrayList<String> listDatabases = new ArrayList<String>();
while (line != null){
listDatabases.add(line.trim());
/*for (int i = 0; i<4; i++){
buff.readLine();
}*/
line =buff.readLine();
}
System.out.println("error stream:");
buff = new BufferedReader(er);
while ((line=buff.readLine()) != null){
System.err.println(line);
}
databases = listDatabases.toArray();
return databases;
}
Когда я запускаю это, по какой-то причине я получаю сообщение, как будто я бежал osql -?
чего я явно не сделал.
Я не уверен, что я делаю неправильно, поэтому любая помощь будет оценена. Спасибо!
1 ответ
Решение
Убрать пробелы из аргументов, снять && off: str = new String[] {"cmd.exe", "/c", "osql", "-S", сервер, "-U", пользователь, "-P", passwd, "-Q", "sp_databases"};