osql
을 사용하여 서버에 데이터베이스 목록을 생성하는 Java 프로그램을 작성하려고합니다.osql -S 예상 결과를 얻지 못했습니다.
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 -?
실행 한 것처럼 메시지를 얻을 다음과 같이 내 코드입니다.
제가 잘못하고있는 것이 확실하지 않으므로 도움을 얻을 수 있습니다. 정말 고마워! STR = 새로운 String [] { "cmd.exe를", "/"C "OSQL", "-S"서버 "-U"사용자 : 인수 오프 & &을으로부터
발급 할 전체 osql 명령 (str)을 포함시킬 수 있습니까? 아마도 당신이 의도 한대로 건설되지 않을 수도 있습니다. –
str = new String [] { "cmd.exe", "/ c", "osql", "-S", 서버, "-U", 사용자, "&&", " "}" "cmd 프롬프트에서 할 때 다음과 같습니다 : 'osql -S serverName -U userName -P password ' – chama
하지만 어떻게 모두 연결되어 최종 명령이 되는가? '&&'와 함께 무엇입니까? –