Programm welches auf CMD basirende Programme öffnet (Notepad), sucht , ausführt und compiliert

P

PG_97

Aktives Mitglied
Ich habe mittlerweile das ganze WWW durchsucht und keine Lösung gefunden. Das Problem: Wenn ich ein Programm über ein anderes starte, so öffnet es sich in ein neues Fenster wird dann aber geschlossen, da das andere Programm zu Ende ist. Kann mir jemand sagen, wie ich die Prozesse unabhängiger machen kann oder das das Programm wartet bis das andere fertig ist? Mit der Sleep Methode komme ich nicht weiter, da ja das gesamte Programm gefriert.
Gibt es da eine "warte" Methode oder so etwas ähnliches für CMD, mit Notepad funktioniert es einwandfrei?

Ich stelle euch einfach mal den Code zur Verfügung:
Code:
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.io.*;

public class SOEC {
   public static void main(String[] args) {
     
      File ef;
     
      SpielHelfer helfer = new SpielHelfer();
      String xy = helfer.getBenutzereingabe(" ");
      String ab = helfer.getBenutzereingabe(" ");
      String gh = helfer.getBenutzereingabe(" ");
     
      SearchCN search = new SearchCN();
      ArrayList<File> cd = search.searchFile(new File ("C:\\Users\\pag\\Documents\\Java"), gh);
      if (cd.size() == 1) {
          ef = cd.get(0);
      } else {
          return;
      }
     
      if (xy.equals("a")) {
          try {
            System.out.println("Programm laeuft.");
            Process process = Runtime.getRuntime().exec(" conhost.exe java " + ab, null, ef);
            process.waitFor();
          } catch (Exception ex) {
             ex.printStackTrace();
          }
       }
       if (xy.equals("b")) {
           try {
             Process process = Runtime.getRuntime().exec(" conhost.exe javac " + ab, null, ef);
             process.waitFor();
          } catch (Exception ex) {
             ex.printStackTrace();
          }
       }
       if (xy.equals("c")){
           try {
             Process process = Runtime.getRuntime().exec("C:\\Program Files (x86)\\Notepad++\\notepad++.exe " + ab, null, ef);
             process.waitFor();
           } catch (Exception ex) {
               ex.printStackTrace();
           }
       }
    }
}
 
Zuletzt bearbeitet:
P

PG_97

Aktives Mitglied
Hat nun alles geklappt!!! Allerdings hängt sich CMD auf und dies nach einer bestimmten Anzahl von Benutzereingaben einesw winzigen Programms(Schiffe Versenken auf CMD mit einem unsichtbaren Virtuellen Raster). Hat jemand Ahnung davon?
 
P

PG_97

Aktives Mitglied
Für alle die ein solches Programm ebenfalls wollen:
É-Voula ein Fertigcode:
Klasse SOEC:

Code:
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.io.*;

public class SOEC {
   public static void main(String[] args) {
      
      
      File ef;
      
      SpielHelfer helfer = new SpielHelfer();
      String xy = helfer.getBenutzereingabe(" ");
      String ab = helfer.getBenutzereingabe(" ");
      String gh = helfer.getBenutzereingabe(" ");
      
      SearchCN search = new SearchCN();
      ArrayList<File> cd = search.searchFile(new File ("C:"), gh);
      if (cd.size() == 1) {
          ef = cd.get(0);
      } else {
          return;
      }
      
      if (xy.equals("a")) {
          try {
            System.out.println("Programm laeuft.");
            Process process = Runtime.getRuntime().exec("conhost.exe java " + ab, null, ef);
            process.waitFor();
          } catch (Exception ex) {
             ex.printStackTrace();
          }
       }
       if (xy.equals("b")) {
           try {
             Process process = Runtime.getRuntime().exec("conhost.exe javac " + ab, null, ef);
             process.waitFor();
          } catch (Exception ex) {
             ex.printStackTrace();
          }
       }
       if (xy.equals("c")){
           try {
             Process process = Runtime.getRuntime().exec("C:\\Program Files (x86)\\Notepad++\\notepad++.exe " + ab, null, ef);
             process.waitFor();
           } catch (Exception ex) {
               ex.printStackTrace();
           }
       }
    }
}

Die Klasse SearchCN:
Code:
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;

public class SearchCN {
    
    //SpielHelfer helfer = new SpielHelfer();
    //String ab = helfer.getBenutzereingabe(" ");
      
    //File f = new File("C:\\Programme");
    //File[] fileArray = f.listFiles();

    public ArrayList<File> searchFile(File dir, String find) {

        File[] files = dir.listFiles();
        ArrayList<File> matches = new ArrayList<File> ();
        if (files != null) {
            for (int i = 0; i < files.length; i++) {
                if (files[i].getName().equalsIgnoreCase(find)) { // überprüft ob der Dateiname mit dem Suchstring
                                         // übereinstimmt. Groß-/Kleinschreibung wird
                                         // ignoriert.
                    matches.add(files[i]);
                }
                if (files[i].isDirectory()) {
                    matches.addAll(searchFile(files[i], find)); // fügt der ArrayList die ArrayList mit den
                                            // Treffern aus dem Unterordner hinzu
                }
            }
        }
        return matches;
    }
}

Und für die Kommunikation:
Code:
import java.io.*;
public class SpielHelfer {
    public String getBenutzereingabe(String prompt) {
        String eingabeZeile = null;
        System.out.print(prompt + " ");
        try {
            BufferedReader is = new BufferedReader(new InputStreamReader(System.in));
            eingabeZeile = is.readLine();
            if (eingabeZeile.length() == 0 ) return null;
            } catch (IOException e) {
            System.out.println("IOException: " + e);
            }
        return eingabeZeile;
    }
}
 
P

PG_97

Aktives Mitglied
Also ich habe jetzt eine letzte Frage. Mit allen Prgrammen läuft es nun, außer mit der Command Zeile(CMD o. PowerShell). Hat jemand eine Ahnung ob irgendwo in meinen Codes etwas enthalten ist, das CMD abstürzen lässt?
Nach x Eingaben, schmiert CMD o. PowerShell nämlich ab...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Wie kann ich einem Programm hinter eine GUI verstecken? Spiele- und Multimedia-Programmierung 12
A Code in Programm wandeln, wie? Spiele- und Multimedia-Programmierung 3
J Pong Programm Spiele- und Multimedia-Programmierung 1
J Programm "fehlerhaft" als .jar Spiele- und Multimedia-Programmierung 4
P schach programm- wo anfangen? Spiele- und Multimedia-Programmierung 13
J Programm kann Audio Datei nicht finden Spiele- und Multimedia-Programmierung 7
F Klausurersatz: Ein Java-Programm erstellen und dieses präsentieren. Spiele- und Multimedia-Programmierung 2
J programm mit java-plugin Spiele- und Multimedia-Programmierung 2
B Mein Programm reagiert nicht auf den Tasstendruck Spiele- und Multimedia-Programmierung 1
C Mein Programm wird sofort terminated Spiele- und Multimedia-Programmierung 8
P Quiz-Programm Spiele- und Multimedia-Programmierung 4
F Screenshot Programm nach Exception weiterlaufen lassen? Spiele- und Multimedia-Programmierung 9
Q AudioClip hängt Programm auf Spiele- und Multimedia-Programmierung 7
S Wolken Bild/Grafik vom Programm erstellen lassen Spiele- und Multimedia-Programmierung 11
J Suche 3D Programm für jMonkeyEngine Spiele- und Multimedia-Programmierung 5
S Kann mir wer verraten wie mann ein java programm Starten? Spiele- und Multimedia-Programmierung 4
U Value in Programm ändern? Spiele- und Multimedia-Programmierung 5
F Programm für Bildbearbeitung gesucht: Skalieren und Speichern Spiele- und Multimedia-Programmierung 6
S Programm hängt sich auf wenn Lied abspielt Spiele- und Multimedia-Programmierung 4
D VOte programm aber wie ?? Spiele- und Multimedia-Programmierung 8
F Programm mit Java3D unter Linux laufen lassen Spiele- und Multimedia-Programmierung 3
S Java 3D Szenegraph programm Spiele- und Multimedia-Programmierung 3
W Programm hängt manchmal Spiele- und Multimedia-Programmierung 5
G AffineTransform macht programm immer langsamer Spiele- und Multimedia-Programmierung 3
M warum funkt dieses Programm nicht? (Menübar, Java 3D) Spiele- und Multimedia-Programmierung 2
G Simples Programm sollte laufen? Spiele- und Multimedia-Programmierung 8
A Programm für ein Backgammon (tavli) Spiel Spiele- und Multimedia-Programmierung 3
A Minecraft Plugin, welches nur bestimmten Block zum bebauen festlegt Spiele- und Multimedia-Programmierung 26
P Welches 3D für Games und wie anfangen? Spiele- und Multimedia-Programmierung 9

Ähnliche Java Themen

Anzeige

Neue Themen


Oben