Java Process OutputStream ist null

Hallo.Ich habe folgendes Problem:
Ich will eine Software schreiben , die einen Minecraftserver steuert.
Diesen starte ich mit:
Java:
                       Process server;
                       ProcessBuilder pserver;
                       try {
				 
				 pserver = new ProcessBuilder("java", "-jar" ,  "server.jar" , "nogui");
				 server = pserver.start();
				 
			} catch (IOException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
			 
			 OutputStream os = server.getOutputStream();			 
			 serverOutput  = new BufferedReader(new InputStreamReader(server.getInputStream()));
			 serverInput = new BufferedWriter(new OutputStreamWriter(os));
Nur das Problem ist , dass wenn ich über
Java:
serverInput.write("stop");
serverInput.newLine();
einen Befehl sende , bekomme ich eine NullPointerException die auf serverInput zeigt.Ich weiß nicht , was ich tuen soll
 
Ich muss dazu sagen, dass dies ein Server ist , der auf einem Linux System läuft , ich nicht so gut programmieren kann und ich den Code nicht kommentiere :D
PS:Wenn ich einen Befehl sende , sieht dieser so aus:
SEND%IP%ARGUMENTE (Nur damit ihr euch nicht wundert):lol:
Java:
package tcpserver;

import java.io.BufferedReader; 
import java.io.BufferedWriter;
import java.io.IOException; 
import java.io.InputStreamReader; 
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket; 
import java.net.SocketException;
import java.nio.charset.Charset;
import java.util.List;

import Logger.Importance;
import Logger.Logger;


public class ServerProtokol {
	
	Socket s;
	BufferedReader vomClient;
	PrintWriter zumClient;
	Logger log = new Logger("log");
	
	public ProcessBuilder pserver;
	public Process server;
	public BufferedReader serverOutput;
	public BufferedWriter serverInput;
	
	public boolean show = true;
	public List<String> cmdline;
	
	public ServerProtokol(Socket s , Logger log) {
		
		try {
			
			this.s = s;
			
			vomClient = new BufferedReader(new InputStreamReader(s.getInputStream()));
			
			zumClient = new PrintWriter(s.getOutputStream() , true);
			
			this.log = log;
			
		} catch(IOException e) {
			
			System.out.println("IO-Error");
			
			log.log(Importance.ERROR, "Fehler");
			
			e.printStackTrace();
			
		}
		
	}
	
	public void startServer() {
			

			 try {
				 
				 pserver = new ProcessBuilder("java", "-jar" ,  "server.jar" , "nogui");
				 server = pserver.start();
				 
			} catch (IOException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace(); 
			}
			 
			 OutputStream os = server.getOutputStream();			 
			 serverOutput  = new BufferedReader(new InputStreamReader(server.getInputStream()));
			 serverInput = new BufferedWriter(new OutputStreamWriter(os));
			 
			 show = true;
			 Thread t = new Thread() {
				 
				 
				 @Override
				 public void run() {
					 

					
					
					try {
						for( ; show == true ; ) {
						   String str;
						   str = serverOutput.readLine();
								if(str != null) {
						
						           if(str.contains("Done") && str.contains("For help, type")) {
							
							          zumClient.println("RUNNING");
							
						            }
						            
						//System.out.println(str);			
						
						          // cmdline.add(str);
						           
					              }
						}
						return;
					} catch (IOException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
					

					
				}
					 				 
				 };
				 			 
			 t.start();


		
			return;
		
			 }
			 
	
	public void stopServer() {
		
			try {
				
				serverInput.write("stop");
				
				serverInput.newLine();
				
				serverInput.flush();
				
			} catch (IOException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
			
			System.out.println("STOPING...");
			
			for( ;; ) {
				
				String str;
				try {
					str = serverOutput.readLine();
					
					if(str.contains("Stopping server") && str.contains("[Server thread/INFO]")) {
						
						zumClient.println("STOPPED");
						
						show = false;
						
						return;
						
					}
					
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				
			}

	}
	
	public void transact() {
		
					log.log(Importance.INFO, "Protokoll gestartet");
					
					System.out.println("Protokoll gestartet");
						
							try {
						
								if(s.isClosed()) {
									
									
									
								}
								
								log.log(Importance.INFO, "Client verbunden");
								
						System.out.println("Client verbunden");						
						
						String cmd = vomClient.readLine();
									
						//System.out.println("Command received");
						
						if(cmd.contains("LOGIN")) {
							
							String[] args = cmd.split("%");
							
							//System.out.println("USER " + args[1] + "> LOGIN");							
							
							//log.info("[" + args[1] + "]" + "LOGIN" + " User:" + args[2]);
							
							log.log(Importance.INFO, "[" + args[1] + "]" + "LOGIN" + " User:" + args[2]);
							
							//System.out.println("CLIENT " + args[1] + " HAS BUILT UP AN CONNECTION");
				
							/*System.out.println("Username:" + args[2]);
							
							System.out.println("Password Hash:" + args[3]);*/
							
							
							if(ServerMain.c.containsKey(args[2])) {
								
								//System.out.println("USERNAME ACCEPTED");
								
								if(ServerMain.c.getPwd5(args[2]).equalsIgnoreCase(args[3])) {
									
									zumClient.println("OK");
									
									//System.out.println("CLIENT ACCEPTED");
									
									log.log(Importance.INFO, "[" + args[1] + "]" + "Client akzeptiert");
									
									ServerMain.loggedOnIp = args[1];
									
								} else {
									
									//System.out.println("PASSWORD NOT ACCEPTED");
									
									zumClient.println("NOK");
									
									log.log(Importance.INFO, "[" + args[1] + "]" + "Client nicht akzeptiert");
									
									System.out.println("CLIENT NOT ACCEPTED");
										
									s.close();
									
								}
								
							} else {
								
								//System.out.println("USERNAME NOT ACCEPTED");
								
								zumClient.println("NOK");
								
								log.log(Importance.INFO, "[" + args[1] + "]" + "Client nicht akzeptiert");
								
								System.out.println("CLIENT NOT ACCEPTED");
									
								s.close();
								
							}
							

							
							//s.close();
							
						} else if(cmd.equalsIgnoreCase("exit")) {
							
									System.out.println("Protokollende");
									
									System.exit(0);
							
						} else if(cmd.contains("STATUS")) {
							
						/*	System.out.println("STATUS");
							
							zumClient.println("false");
						*/	
								String[] args = cmd.split("%");
							
								log.log(Importance.INFO, "[" + args[1] + "]" + "STATUS");
								
								if(ServerMain.loggedOnIp.equalsIgnoreCase(args[1])) {
									
									//Läuft der Server?
									
									zumClient.println("false");
									
								} else {
									
									s.close();
									
								}
							
						} else if(cmd.contains("DISCONNECT")) {
							
							String[] args = cmd.split("%");
							
							if(ServerMain.loggedOnIp.equalsIgnoreCase(args[1])) {
								
								ServerMain.loggedOnIp = null;
								
								log.log(Importance.INFO, "[" + args[1] + "]" + "Disconnect");
								
								System.out.println("USER DISCONNECT");
								
							} else {
								
								s.close();
								
							}
							
						}else if(cmd.contains("START")) {
							
							String[] args = cmd.split("%");
							
							if(ServerMain.loggedOnIp.equalsIgnoreCase(args[1])) {
								
								log.log(Importance.INFO, "[" + args[1] + "]" + "START");
								
								System.out.println("USER STARTED THE SERVER");
								
			                    	zumClient.println("true");		
								
			                    	startServer();
			                    	
							} else {
								
								s.close();
								
							}
							
						} else if(cmd.contains("STOP")) {
							
							String[] args = cmd.split("%");
							
							System.out.println("SERVER IS STOPPING");
							
							if(ServerMain.loggedOnIp.equalsIgnoreCase(args [1])) {
								
								stopServer();
								
								log.log(Importance.INFO, "[" + args[1] + "]" + "STOP");
								
								System.out.println("USER STOPPED THE SERVER");
								
							}
							
						}else if(cmd.contains("GETCMD")) {
							
							String[] args = cmd.split("%");
							if(ServerMain.loggedOnIp.equalsIgnoreCase(args [1])) {
								
								ObjectOutputStream oos = new ObjectOutputStream(s.getOutputStream());
								
								oos.writeObject(cmdline);
								
								System.out.println("cmdline sent");
								
								cmdline.clear();
								
							}
							
						}
						

							
						//System.out.println("Kein Befehl");
						
					} catch(SocketException e) {
						
						if(e.getMessage().equalsIgnoreCase("Connection reset")) {
							
							System.out.println("USER DISCONNECT");
							
							
							
						} else {
					
							e.printStackTrace();
						
						    System.out.println("IO-Fehler");
						    
						}

						

						
					} catch (IOException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
				}
				
		}
			
		
}
 
Ich hab mich ein bisschen im Code der BukkitUI "umgesehen":lol: und habe auch das kleine Plugin für den Server benutzt , das die Kommandozeile überwacht.Nur immer , wenn ich in den Stream des Servers(Der OutputStream) schreiben will , sagt er mir , dass dieser ein leeres Object ist.Gibt Process.getOutputStream() nichts zurück?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Mit Java auf die Konsole eines Process-Objekts zugreifen Allgemeine Java-Themen 10
S Wie beendet man einen Process in Java Platform unabhänging? Allgemeine Java-Themen 8
OnDemand Java Deployment Vaadin Allgemeine Java-Themen 3
D Hat Java eine Library um JavaScript auszuwerten? Allgemeine Java-Themen 2
Zrebna Wieso sind eigentlich JUnit-Tests in src/test/java platziert - nur Konvention? Allgemeine Java-Themen 7
N LlaMA, KI, java-llama.cpp Allgemeine Java-Themen 39
V Java-Codierungsherausforderung: Navigieren durch die Macken der Datumsmanipulation Allgemeine Java-Themen 2
E Output Fehler (Java-Programm Kuchen) Allgemeine Java-Themen 11
M java: unexpected type Allgemeine Java-Themen 2
harrytut Java Input/Output Tests Junit Allgemeine Java-Themen 3
B Java Discord bot auf ein Root Server? Allgemeine Java-Themen 1
BetziTheRealOne Java PKIX path building failed as non Admin Allgemeine Java-Themen 15
D Linux, Java-Version wird nicht erkannt bzw. welche Einstellung fehlt noch? Allgemeine Java-Themen 19
KonradN Java 21 Release Allgemeine Java-Themen 5
V Umgang mit fehlenden Daten in einer Java-Datenanalyseanwendung Allgemeine Java-Themen 5
P Fehler: Hauptklasse Main konnte nicht gefunden oder geladen werden Ursache: java.lang.ClassNotFoundException: Main Allgemeine Java-Themen 24
K Java Anwendung machen Anleitung Allgemeine Java-Themen 5
G java.io.listFiles() Allgemeine Java-Themen 3
8u3631984 Frage zu Java Streams min / max Allgemeine Java-Themen 17
S Java Programm lässt sich vom USB-Stick starten, aber nicht von HDD Allgemeine Java-Themen 16
K Java-Projekt Allgemeine Java-Themen 11
K Java-Projekt Allgemeine Java-Themen 0
ruutaiokwu Welcher Browser unterstützt heutzutage noch Java Applets? Allgemeine Java-Themen 5
Jose05 Java-Klasse im extra cmd-Fenster ausführen Allgemeine Java-Themen 3
rode45e Java Threads Allgemeine Java-Themen 4
G java.io.listFiles() Allgemeine Java-Themen 2
N Java Dynamic Proxy Allgemeine Java-Themen 3
N Leichte Java Gegner Ki Allgemeine Java-Themen 10
A Java modul Problem Allgemeine Java-Themen 4
Thomasneuling Java Jar datei erstellen, von Projekt, dass auch Javafx Dateien, FXML Dateien und CSS Dateien, sowie Bilder enthält? Allgemeine Java-Themen 14
V Funktionale Schnittstelle in Java Allgemeine Java-Themen 3
OnDemand Java String in Hashmap als Key NULL Allgemeine Java-Themen 27
urmelausdemeis Exception in thread "main" java.lang.Error: Unresolved compilation problem: Allgemeine Java-Themen 7
berserkerdq2 Wenn ich bei Intelij javafx mit maven importieren will, muss ich das in die pom.xml reintun, aber warum noch in module-info.java? Allgemeine Java-Themen 3
KonradN Java 20 am 21. März Allgemeine Java-Themen 1
O Java Website Stock Bot Allgemeine Java-Themen 3
J Front-/Backend in Java Allgemeine Java-Themen 14
doopexxx JAVA Google Webcrawler Allgemeine Java-Themen 1
J JavaScript innerhalb eines Java Projekts ausführen Allgemeine Java-Themen 2
A Java Programm erstellen hilfe Allgemeine Java-Themen 10
G java.lang.NoClassDefFoundError: org/aspectj/lang/Signature Allgemeine Java-Themen 2
lalex1491 Java Aktienkurse nachfragen Allgemeine Java-Themen 4
J Class to link Java Allgemeine Java-Themen 4
V Wie funktioniert das Schlüsselwort "final" von Java? Allgemeine Java-Themen 19
mrStudent Inferenz JAVA Allgemeine Java-Themen 6
U URI Rechner (Java Script) Allgemeine Java-Themen 7
TheSkyRider Java Geburtsdatum Textfeld Allgemeine Java-Themen 7
mihe7 Java 19 JavaDocs: Browserintegration Allgemeine Java-Themen 0
Encera Gleichzeitiges Ausführen und verbinden von 2 Java-Klassen über die Eingabeaufforderung und Eclipse Allgemeine Java-Themen 21
H Java Rechner Programmierung der Mathematik Allgemeine Java-Themen 33
Lennox Schinkel Java Kara Auf einen Java Host laufen lassen Allgemeine Java-Themen 17
C Fußnoten von DocX mit Java Allgemeine Java-Themen 2
C Fußnoten in DocX mit Java Allgemeine Java-Themen 1
M Aussagenlogik in Java Programmieren Allgemeine Java-Themen 22
B Per Java Word Dokument schreiben? Allgemeine Java-Themen 8
krgewb Java-Bibliothek für ONVIF Allgemeine Java-Themen 1
KonradN Oracle übergibt (Java Teile der) GraalVM Community Edition an OpenJDK Community Allgemeine Java-Themen 2
Momo16 Brauche Hilfe - Java Projekt kann nicht erstellt werden Allgemeine Java-Themen 12
B Java mit command line und jars benutzen? Allgemeine Java-Themen 18
M Java Überprüfen ob .exe-Datei bereits ausgeführt wird Allgemeine Java-Themen 2
B HTTP Allgemeine Fragen über Suchmaschine nutzen mit Java Allgemeine Java-Themen 20
Mick P. F. Wie kriege ich die Fehlermeldung "java: symbol lookup error: ..." weg? Allgemeine Java-Themen 11
K Nachhilfe Java Allgemeine Java-Themen 11
KonradN Java 19 Allgemeine Java-Themen 11
F IDEA IntelliJ Java Songliste erstellen Allgemeine Java-Themen 6
TheSepp Java bestimmtes Array auf den Wert 0 setzen Allgemeine Java-Themen 32
B Java Reflection Probleme beim wehcselseitigen Referenzieren zweier Klassen/Objekte Allgemeine Java-Themen 14
Sachinbhatt Sind alle Methoden in Java implizit virtuell Allgemeine Java-Themen 2
E Java und integrierte Grafikkarten Allgemeine Java-Themen 18
Sachinbhatt Wie wird die Typumwandlung bei Mehrfachvererbung in Java implementiert? Allgemeine Java-Themen 3
Peterw73 Hilfe bei Java gesucht Allgemeine Java-Themen 3
A Java unter Win 10 Allgemeine Java-Themen 1
B Woher kommen die Bildschirmkoordinaten beim java Robot? Allgemeine Java-Themen 14
P9cman java.Lang Klassen fehlen in JRE System Library Allgemeine Java-Themen 1
T Java Robot Class - Bot Allgemeine Java-Themen 3
E Wie Java Heap Space vergrößern? Allgemeine Java-Themen 3
B Java Programm auf virutellem Desktop laufen lassen? Allgemeine Java-Themen 1
D VBA Code mit Java ausführen möglich? Allgemeine Java-Themen 10
berserkerdq2 Threads, wie genau läuft das in Java ab? (Ich kann Threads erstellen und nutzen, nur das Verständnis) Allgemeine Java-Themen 6
izoards Java Home Pfad unabhängig von der Version Allgemeine Java-Themen 7
N JAVA-Code mit Grafikfenster zeichnet in Windows, aber nicht Mac. Allgemeine Java-Themen 4
L Java überprüfen lassen, ob sich ein gegebener Pfad / das Programm an sich auf einer CD oder Festplatte befindet Allgemeine Java-Themen 14
KonradN CVE-2022-21449: Fehler in Java bei Signaturprüfung Allgemeine Java-Themen 20
berserkerdq2 Java sql Allgemeine Java-Themen 15
JordenJost Unverständlicher Java code? Allgemeine Java-Themen 21
LimDul XSD To Java - Überschreiben von Assoziationen Allgemeine Java-Themen 1
Aartiyadav Comparisons and Swapa in Bubble-sort Java Allgemeine Java-Themen 6
KonradN Java 18 Allgemeine Java-Themen 8
N Statistische Auswertung von Logfiles (Einlesen, auswerten und grafische Aufbereitung von logfiles) mit Java Allgemeine Java-Themen 9
ME2002 Fragen aus einer Java Klausur Allgemeine Java-Themen 67
Z Mit Java 8+ Streams Zeilen nummern zu Zeilen hinzufügen Allgemeine Java-Themen 17
M Verständnisfrage java.util.TimerTask Allgemeine Java-Themen 2
V Hilfe mit Java Code Allgemeine Java-Themen 4
S Processing Java Code verstehen Allgemeine Java-Themen 4
O Newton Algorithmus Java Allgemeine Java-Themen 1
P Java Quellen finden Allgemeine Java-Themen 3
M Java Analyse/ SWOT-Analyse Allgemeine Java-Themen 13
J c Programm läuft nicht in compilierter Version des Java Projektes Allgemeine Java-Themen 7
Atten007 Java-Klasse auf macOS entpacken? Allgemeine Java-Themen 2
E java mithilfe url .jar datei öffnen Allgemeine Java-Themen 9

Ähnliche Java Themen

Neue Themen


Oben