2015-03-27 5 views
0

Я пытаюсь запустить smbclient команду, чтобы скопировать файл на диск Использование класса Java Runtime с помощью следующего кода:Запуск smbclient команду из Java с помощью Время воспроизведения

private void copyFiles(String filePath) throws Exception { 

    String command = "smbclient -A smbclient_authentication.txt //192.14.34.118/testbakup -c \"put " + filePath + "\""; 
    System.out.println("Smbclinet command:" + command); 
    Process p = Runtime.getRuntime().exec(command); 
    int waitFor = p.waitFor(); 

    if (waitFor == 0) { 
     System.out.println(p.exitValue()); 
     StringBuffer sb = new StringBuffer(); 
     BufferedReader reader = 
       new BufferedReader(new InputStreamReader(p.getInputStream())); 

     String line = ""; 
     while ((line = reader.readLine()) != null) { 
      sb.append(line + "\n"); 
     } 
     if (reader != null) reader.close(); 
    } else { 

     InputStream errorStream = p.getErrorStream(); 
     byte[] buffer = new byte[errorStream.available()]; 
     errorStream.read(buffer); 

     String str = new String(buffer); 
     System.out.println(str); 
     if (errorStream != null) errorStream.close(); 
    } 

} 

Я попытался с помощью библиотеки JCIFS но оно принимает слишком много времени для копирования файла. поэтому я хочу запустить вышеуказанную команду с помощью Java. Я могу запускать ту же команду извне, но не из Java, и она даже не дает никакой ошибки.

ответ

0

Я не нашел решения для запуска указанной выше команды, поэтому смонтировал этот диск на свою машину и скопировал файл в этот смонтированный каталог.

 Смежные вопросы

  • Нет связанных вопросов^_^