62,615
社区成员
发帖
与我相关
我的任务
分享
String cmd=Input.getText();
Output.appendText(cmd);
OutputStreamWriter OSW=new OutputStreamWriter(StartServer.getOutputStream());
BufferedWriter Writer=new BufferedWriter(OSW);
Writer.write(cmd);
Writer.close();
OSW.close
package xyz.shandiankulishe.msm_UI;
import javafx.application.Application;
import javafx.concurrent.Task;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.TextArea;
import javafx.scene.control.TextField;
import javafx.scene.image.ImageView;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import javafx.scene.text.Text;
import javafx.stage.Stage;
import java.io.*;
import java.lang.management.ManagementFactory;
import com.sun.management.OperatingSystemMXBean;
public class RunServer extends Application{
public static void main(String[] args){
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
Group root=new Group();
Scene scene=new Scene(root,1280,720, Color.WHITE);
TextArea Output=new TextArea();
TextField Input=new TextField();
String URL=getClass().getResource("sub.png").toString();
Button Submit=new Button("Submit",new ImageView(URL));
Text RunTime=new Text("运行时间:N/A");
Text CpuLoad=new Text("CPU占用:N/A");
Text MemoryLoad=new Text("内存占用:N/A");
RunTime.setFont(Font.font("Microsoft JhengHei",24));
CpuLoad.setFont(Font.font("Microsoft JhengHei",24));
MemoryLoad.setFont(Font.font("Microsoft JhengHei",24));
RunTime.setLayoutX(950);
RunTime.setLayoutY(40);
CpuLoad.setLayoutX(950);
CpuLoad.setLayoutY(70);
MemoryLoad.setLayoutX(950);
MemoryLoad.setLayoutY(100);
Output.setPrefRowCount(37);
Output.setPrefWidth(900);
Output.setPrefHeight(630);
Output.setLayoutX(10);
Output.setLayoutY(10);
Input.setPrefWidth(850);
Input.setLayoutX(10);
Input.setLayoutY(650);
Submit.setLayoutX(870);
Submit.setLayoutY(650);
root.getChildren().addAll(Output,Input,Submit,RunTime,CpuLoad,MemoryLoad);
primaryStage.setScene(scene);
primaryStage.show();
primaryStage.setWidth(1280);
primaryStage.setHeight(720);
Process StartServer=Runtime.getRuntime().exec("cmd /c java -Xmx1024M -Dlog4j.skipJansi=true -jar Server.jar nogui");
Submit.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
try {
String cmd=Input.getText();
Input.clear();
Output.appendText(cmd);
OutputStreamWriter OSW=new OutputStreamWriter(StartServer.getOutputStream());
BufferedWriter Writer=new BufferedWriter(OSW);
Writer.write(cmd);
Writer.close();
OSW.close();
} catch (IOException e) {
e.printStackTrace();
}
}
});
Task<Void> GetRuntime=new Task<Void>() {
@Override
protected Void call() throws Exception {
OperatingSystemMXBean OSMB=(OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
for (int i=1;i>0;i++){
RunTime.setText("运行时间: "+i+" 秒");
double CPULOAD=OSMB.getSystemCpuLoad();
int CPULOADVALUE=(int)(CPULOAD*100);
String CPUUSE=String.valueOf(CPULOADVALUE);
CpuLoad.setText("CPU使用率:"+CPUUSE+" %");
double MAXVMMEMORY=OSMB.getTotalPhysicalMemorySize();
double FREEVMMEMORY=OSMB.getFreePhysicalMemorySize();
double USEDVMMEMORY=MAXVMMEMORY-FREEVMMEMORY;
USEDVMMEMORY=USEDVMMEMORY/MAXVMMEMORY;
int VMMEMORYLOAD=(int)(USEDVMMEMORY*100);
String MEMORYUSE=String.valueOf(VMMEMORYLOAD);
MemoryLoad.setText("内存占用:"+MEMORYUSE+" %");
Thread.sleep(1000);
}
return null;
}
};
new Thread(GetRuntime).start();
Task<Void> PrintServerMessage=new Task<Void>() {
@Override
protected Void call() throws IOException {
BufferedReader getInput= new BufferedReader(new InputStreamReader(StartServer.getInputStream()));
String Buffer;
while ((Buffer=getInput.readLine())!= null){
Output.appendText(Buffer+"\n");
System.out.println(Buffer+"\n");
}
getInput.close();
return null;
}
};
new Thread(PrintServerMessage).start();
}
}