我不能爲我的生活弄清楚如何使用Java中的兩個按鈕來啓動和停止遊戲Minecraft的服務器。控制檯命令Minecraft服務器通過Java GUI啓動/停止
到目前爲止,我有這個爛攤子..
try
{
ProcessBuilder processBuilder = new ProcessBuilder("/Users/UserName/Desktop/servers/test/launch.sh");
Process server;
if (event.getSource() == start_Btn)
{
server = processBuilder.start();
//OutputStream out = server.getOutputStream();
start_Btn.setText("Started");
}
else if (event.getSource() == stop_Btn)
{
OutputStream out = server.getOutputStream();
server.getOutputStream().write(new String("stop").getBytes("utf-8"));
stop_Btn.setText("Stoped");
start_Btn.setText("Start");
}
}
catch (IOException exception)
{
}
catch (InterruptedException exception)
{
}
我今天已經在網上淘了一整天,我已經決定最終它帶給你們。
我希望能夠通過按下「開始」按鈕啓動服務器,然後用「停止」按鈕停止它我有一個GUI設置,我知道如何設置按鈕事件。我可以讓服務器輕鬆地從啓動按鈕開始,這只是我無法管理的停止功能。
注意:要停止服務器,必須在啓動服務器的命令行中輸入「stop」。
非常感謝您的幫助,我非常感謝。
1)通過去[當的Runtime.exec ()不會](http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html)&落實建議。 2)這是Swing嗎? 3)對於每個'catch'調用'exception.printStackTrace();' –
@AndrewThompson 1)這似乎基本上是通過一次運行一個命令流並且不允許再次附加到流X時間後運行另一個命令。 2)你是什麼意思「搖擺?」 3)我做到了,沒有任何反應。 –
1)我不明白。你是否實施了這些建議,是或否? 2)什麼類型是'stop_Btn'?它是AWT,SWT,JSP,Swing ..? 3)好的 - 沒有明顯的例外情況,但是消耗並顯示進程的「err」流,並在編輯中顯示新代碼,最好是[SSCCE](http://sscce.org/)。 –