这在Windows中相当简单,但在Linux中有点棘手。我正在使用
Runtime.getRuntime().exec(new String[] { "/bin/bash", "-c", "java -classpath /home/4/byz/Orc" });
其中Orc是具有main函数的类文件。 但没有任何反应。有任何设置吗?难道我做错了什么 ?
我希望java程序在终端中运行。
以下是解决方案:
String[] cmdArray = {"gnome-terminal","java -classpath /home/r/byz/ Orchestrator"};
try {
Runtime.getRuntime().exec(cmdArray);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
基本上,我们必须使用gnome-terminal ..
答案 0 :(得分:3)
我相信这已经解决了,但我会发布一个答案:
如何运行:
executeCommand(new String[]{"/bin/bash", "-c", "java -classpath /home/4/byz/Orc"});
方法:
public String executeCommand(String[] cmd) {
StringBuffer theRun = null;
try {
Process process = Runtime.getRuntime().exec(cmd);
BufferedReader reader = new BufferedReader(
new InputStreamReader(process.getInputStream()));
int read;
char[] buffer = new char[4096];
StringBuffer output = new StringBuffer();
while ((read = reader.read(buffer)) > 0) {
theRun = output.append(buffer, 0, read);
}
reader.close();
process.waitFor();
} catch (IOException e) {
throw new RuntimeException(e);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
return theRun.toString().trim();
}
请告诉我这是否有帮助!