以下是我在JAVA中通过SSH登录某台服务器的小试验
不知道为什么会抛出IOException
java.io.IOException: CreateProcess: \usr\bin\ssh [email protected] ls error=3
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.<init>(ProcessImpl.java:81)
at java.lang.ProcessImpl.start(ProcessImpl.java:30)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:451)
at java.lang.Runtime.exec(Runtime.java:591)
at java.lang.Runtime.exec(Runtime.java:464)
at CommandTest.execCommand(CommandTest.java:52)
at CommandTest.main(CommandTest.java:17)
Exception in thread "main" java.io.IOException: CreateProcess: \usr\bin\ssh [email protected] ls error=3
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.<init>(ProcessImpl.java:81)
at java.lang.ProcessImpl.start(ProcessImpl.java:30)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:451)
at java.lang.Runtime.exec(Runtime.java:591)
at java.lang.Runtime.exec(Runtime.java:464)
at CommandTest.execCommand(CommandTest.java:52)
at CommandTest.main(CommandTest.java:17)有没有人可以帮忙解答?
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;public class CommandTest { public static void main(String[] args) throws Exception {
List<String> param = new ArrayList<String>();
param.add("/usr/bin/ssh");
param.add("[email protected]");
param.add("ls");
execCommand(param);
}
public static void execCommand(List<String> anInpinfolist) throws Exception {
Runtime runtime = null;
Process process = null;
InputStream inputStream = null;
InputStream errorStream = null;
InputStreamReader inputStreamReader = null;
InputStreamReader errorStreamReader = null; BufferedReader bufferedReader = null;
BufferedReader errorReader = null; String outLine = null;
runtime = Runtime.getRuntime();
try {
String[] cmndPram = (String[])anInpinfolist.toArray(
new String[anInpinfolist.size()]);
for (int i = 0; i < cmndPram.length; i++) { if (cmndPram[i] == null) {
cmndPram[i] = "";
}
} /* COMMAND EXEC */
process = runtime.exec(cmndPram); /* COMMAND RESULT */
inputStream = process.getInputStream();
inputStreamReader = new InputStreamReader(inputStream);
bufferedReader = new BufferedReader(inputStreamReader);
while ((outLine = bufferedReader.readLine()) != null) {
System.out.println(outLine);
} errorStream = process.getErrorStream();
errorStreamReader = new InputStreamReader(errorStream);
errorReader = new BufferedReader(errorStreamReader);
while ((outLine = errorReader.readLine()) != null) {
System.err.println(outLine);
}
} catch (Exception e) {
e.printStackTrace();
throw e; } finally { try {
if (bufferedReader != null) {
bufferedReader.close();
}
} catch (Exception ee) {
bufferedReader = null;
} try {
if (errorReader != null) {
errorReader.close();
}
} catch (Exception ee) {
errorReader = null;
}
/* PROCESS CLOSE*/
try {
if (process != null) {
process.getErrorStream().close();
process.getInputStream().close();
process.getOutputStream().close();
process.destroy();
}
} catch (Exception ee) {
process = null;
}
} }
}
不知道为什么会抛出IOException
java.io.IOException: CreateProcess: \usr\bin\ssh [email protected] ls error=3
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.<init>(ProcessImpl.java:81)
at java.lang.ProcessImpl.start(ProcessImpl.java:30)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:451)
at java.lang.Runtime.exec(Runtime.java:591)
at java.lang.Runtime.exec(Runtime.java:464)
at CommandTest.execCommand(CommandTest.java:52)
at CommandTest.main(CommandTest.java:17)
Exception in thread "main" java.io.IOException: CreateProcess: \usr\bin\ssh [email protected] ls error=3
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.<init>(ProcessImpl.java:81)
at java.lang.ProcessImpl.start(ProcessImpl.java:30)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:451)
at java.lang.Runtime.exec(Runtime.java:591)
at java.lang.Runtime.exec(Runtime.java:464)
at CommandTest.execCommand(CommandTest.java:52)
at CommandTest.main(CommandTest.java:17)有没有人可以帮忙解答?
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;public class CommandTest { public static void main(String[] args) throws Exception {
List<String> param = new ArrayList<String>();
param.add("/usr/bin/ssh");
param.add("[email protected]");
param.add("ls");
execCommand(param);
}
public static void execCommand(List<String> anInpinfolist) throws Exception {
Runtime runtime = null;
Process process = null;
InputStream inputStream = null;
InputStream errorStream = null;
InputStreamReader inputStreamReader = null;
InputStreamReader errorStreamReader = null; BufferedReader bufferedReader = null;
BufferedReader errorReader = null; String outLine = null;
runtime = Runtime.getRuntime();
try {
String[] cmndPram = (String[])anInpinfolist.toArray(
new String[anInpinfolist.size()]);
for (int i = 0; i < cmndPram.length; i++) { if (cmndPram[i] == null) {
cmndPram[i] = "";
}
} /* COMMAND EXEC */
process = runtime.exec(cmndPram); /* COMMAND RESULT */
inputStream = process.getInputStream();
inputStreamReader = new InputStreamReader(inputStream);
bufferedReader = new BufferedReader(inputStreamReader);
while ((outLine = bufferedReader.readLine()) != null) {
System.out.println(outLine);
} errorStream = process.getErrorStream();
errorStreamReader = new InputStreamReader(errorStream);
errorReader = new BufferedReader(errorStreamReader);
while ((outLine = errorReader.readLine()) != null) {
System.err.println(outLine);
}
} catch (Exception e) {
e.printStackTrace();
throw e; } finally { try {
if (bufferedReader != null) {
bufferedReader.close();
}
} catch (Exception ee) {
bufferedReader = null;
} try {
if (errorReader != null) {
errorReader.close();
}
} catch (Exception ee) {
errorReader = null;
}
/* PROCESS CLOSE*/
try {
if (process != null) {
process.getErrorStream().close();
process.getInputStream().close();
process.getOutputStream().close();
process.destroy();
}
} catch (Exception ee) {
process = null;
}
} }
}
楼主【ziruobing】截止到2008-07-28 10:36:00的历史汇总数据(不包括此帖):
发帖的总数量:5 发帖的总分数:70 每贴平均分数:14
回帖的总数量:7 得分贴总数量:2 回帖的得分率:28%
结贴的总数量:4 结贴的总分数:50
无满意结贴数:1 无满意结贴分:50
未结的帖子数:1 未结的总分数:20
结贴的百分比:80.00 % 结分的百分比:71.43 %
无满意结贴率:25.00 % 无满意结分率:100.00%
楼主加油