我是如何在另一個java程序中啓動程序的新手段!我不知道該怎麼稱呼它。第一個問題是我必須在一個新的線程內完成它?第二個問題是如何調用新程序。我想要調用的程序是「奇蹟般的」。我使用Ubuntu 12.04來運行這個程序,並在我編寫的命令行中使用。 「sudo wondershaper eth0 10000 1000」。 我可以在通用程序中編寫它嗎? 我有一臺服務器,我想處理它的速度!這就是爲什麼我使用它。所以我有一個多線程服務器和代碼是如何在java程序中啓動外部程序
class Client extends Thread {
private Socket connectionSocket;
public Client(Socket c) throws IOException {
connectionSocket = c;
}
public void run() {
String path = "C:/pao/new2/";
File folder = new File(path);
File[] listOfFiles = folder.listFiles();
try {
String fileToSendStr = readFile();
File fileToSend = null;
for (File f : listOfFiles)
{
if (f.getName().equals(fileToSendStr)) {
fileToSend = f;
break;
}
}
//System.out.println("Connescting to Client to recieve the part " +fileToSendStr);
if (fileToSend == null) {
}
System.out.println("Sending the chunk to Client " + fileToSendStr + "to the client: " +connectionSocket.getRemoteSocketAddress().toString());
java.util.Date date= new java.util.Date();
System.out.println(new Timestamp(date.getTime()));
long length = fileToSend.length();
byte [] longBytes = new byte[8];
ByteBuffer bbuffer = ByteBuffer.wrap(longBytes);
bbuffer.putLong(length);
connectionSocket.getOutputStream().write(longBytes);
BufferedOutputStream bout = new BufferedOutputStream(connectionSocket.getOutputStream());
BufferedInputStream bain = new BufferedInputStream(new FileInputStream(fileToSend));
byte buffer [] = new byte [1024];
int i = 0;
while((i = bain.read(buffer, 0, 1024)) >= 0){
bout.write(buffer, 0, i);
}
System.out.println("chunk sended");
java.util.Date date1= new java.util.Date();
System.out.println(new Timestamp(date1.getTime()));
bout.close();
bain.close();
} catch (IOException e) {
e.printStackTrace();
}
}
private String readFile() throws IOException {
BufferedReader r = new BufferedReader(new InputStreamReader(
connectionSocket.getInputStream()));
return r.readLine();
}
}
所以當我讀readFile客戶端發送給我。之後,如果它是速度字符串啓動「wondershaper」,並把速度的「命令wondershaper eth0的10000率」內,啓動程序
我不是100%確定,但我想你正在尋找Java的Process類。 –
相關問題:http://stackoverflow.com/questions/3643939/java-process-with-input-output-stream –
謝謝,我沒有看到它! –