运行 来自 Java 使用运行时的 smbclient 命令
Running smbclient command from Java using Runtime
我正在尝试 运行 smbclient 命令使用 Java 运行时 class 将文件复制到共享驱动器,代码如下:
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 执行,而且它甚至没有给出任何错误。
我将该驱动器安装到我的机器中并将文件复制到该安装目录。
我正在尝试 运行 smbclient 命令使用 Java 运行时 class 将文件复制到共享驱动器,代码如下:
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 执行,而且它甚至没有给出任何错误。
我将该驱动器安装到我的机器中并将文件复制到该安装目录。