Input/Output CMD Ausgabe als ButtonEvent

mirisbowring

Bekanntes Mitglied
Guten Tag,
ich habe ein Programm (mit GUI) und eine Datenbank, deren Datensätze ich in einem CMD Fenster ausgeben möchte. Das auslesen und so weiter ist alles kein Problem.

Das CMD Fenster soll auch nur auf Button druck kommen und auch nur das ResultSet ausgeben, also keine anderen Konsolen Ausgaben.

Wie kann ich das realisieren?
 
Ja das ist mir schon klar...
Cmd bekomme ich ja auch zum laufen...

Also ich selecte viele Werte aus einer Datenbank, wenn ich auf einen Button drücke.
Dann gebe ich diese mit System.out.printf() aus. (Allerdings in der Netbeans konsole oder eben gar nicht, wenn ich das Programm außerhalb Netbeans starte).

Ich möchte nun, dass dieser System.out.printf Befehl in der CMD Konsole ausgeben wird...
 
Wie @VfL_Freak schon gezeigt hat entweder den Konsolenoutput in eine Datei umleiten oder aber du musst dein Programm immer von der Konsole aus starten. (mittels "java [programmname]")
Dabei sollte die Konsole offenbleiben und eben auch Output anzeigen.
So was habe ich selbst schon mal gemacht vor Ewigkeiten, hat mir aber nicht getaugt. Hab den Output dann lieber in eine Datei umgeleitet.
 
Ich habs jetzt gelöst 🙂
Ich schreibe die Ausgabe mit einem PrintWriter in ein Batch file und füre dass dann aus:

Java:
Statement stmt;
        String sql = "SELECT * FROM TABLE";
        try
        {          
            File file = new File("TABLE.bat");
            if(!file.exists()){
                file.createNewFile();
            }          
            try (PrintWriter writer = new PrintWriter(file, "UTF-8")) {             
                writer.println("@echo off");
                writer.println("cls");
                //Überschrift
                writer.println("echo Tabelle TABLE");
                writer.println("echo.");
                writer.println("echo.");

                stmt = conn.createStatement();
                ResultSet rs = stmt.executeQuery(sql);
                while(rs.next())
                {
                    String line = "echo " + rs.getInt(1) + ", " + rs.getString(2) + ", " + rs.getInt(3) + ", " + rs.getInt(4);
                    writer.println(line);
                }
                writer.println("pause");
                writer.close();
            }         
            Runtime rt = Runtime.getRuntime();
            Process cmd = rt.exec("cmd /c start TABLE.bat");
            cmd.waitFor();
            //ohne die Pause wäre Java zu schnell, und würde das Batch File löschen, bevor es ausgeführt wurde
            Thread.sleep(1000);
            file.delete();
        }
        catch(IOException | SQLException | InterruptedException e)
        {
            JOptionPane.showMessageDialog(null,"Error: ap-0005 \n" + e);
        }
 

Zurück
Oben