Unleashed Geschrieben 5. September 2008 Geschrieben 5. September 2008 Hi ich bins mal wieder. Ich wollt fragen wie ich eine Java Console öffne. also im script, damit ich dort was drinen ausgeben kann. danke schon mal. Zitieren
tha_specializt Geschrieben 5. September 2008 Geschrieben 5. September 2008 (bearbeitet) System.out.println("uiuiuiTIFFIII!!"); gerade für dich ein wertvoller Hinweis: RTFM Bearbeitet 5. September 2008 von tha_specializt Zitieren
Unleashed Geschrieben 5. September 2008 Autor Geschrieben 5. September 2008 Ja so doof bin ich auch nicht. ^^ will wenn ich das projekt in ne .jar gemacht hat. das er mir dann das fenster öffnet wo das drin steht. Zitieren
Schiller256 Geschrieben 5. September 2008 Geschrieben 5. September 2008 Was du per System.out.println(); auf die Konsole schreibst ist dann da auch zu sehen. Wenn du deine jar Datei via java -jar tollerName.jar startest dann kannst du auch die Ausgaben sehen. Zitieren
tha_specializt Geschrieben 5. September 2008 Geschrieben 5. September 2008 Bevor du an das Deployement gehst würde ich zuallererst mal die Grundprinzipien der Hochsprachen-Programmierung erlernen, das ist viel wichtiger. Eins könnte noch von Interesse sein: Es gibt keinen Unterschied zwischen dem Programm, welches du manuell in der IDE starten kannst und dem, welches man später in ner JAR an Leute verschicken kann .... andernfalls wären das Prinzip von Java ziemlich zerstört :upps Der beste Anfang sieht so aus: Datentypen kennenlernen & testen, Fehlerausgaben kennenlernen und verstehen, Variablen, Klasse, Methoden usw ... keinesfalls von "Ausgabe" zu "JAR-Packages" springen, das zerreisst dir die Lernkurve, so wird ganz schnell aus x² dann -x² :eek Zitieren
kein-tee Geschrieben 8. September 2008 Geschrieben 8. September 2008 Ich wollt fragen wie ich eine Java Console öffne. also im script, damit ich dort was drinen ausgeben kann. Du musst die JAR-Datei Assoziation von 'javaw' auf 'java' ändern. Javaw öffnet keine Console. Mir ist leider auch kein Weg bekannt eine Console zu öffnen, wenn keine verfügbar ist. Hoffe das bringt dich etwas voran. Ansonsten: Wenn du deine jar Datei via java -jar tollerName.jar startest dann kannst du auch die Ausgaben sehen. Gruß Zitieren
speedi Geschrieben 9. September 2008 Geschrieben 9. September 2008 Was Spricht denn dagegen ein eigenes Frame zu machen und die Ausgaben dort in eine TextArea zu lenken? Zitieren
Devilmarkus Geschrieben 11. September 2008 Geschrieben 11. September 2008 (bearbeitet) Ich habe in meinem JavaCPC Emulator die Java-Konsole umgeleitet: package jemu.ui; /** * Title: JEMU by cpc.devilmarkus.de / jemu.winape.net * Description: JAVA emulator for Amstrad Homecomputers * Copyright: Copyright (c) 2002-2008 * Company: * @author Devilmarkus * @version 4.0 * * */ import java.io.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.border.*; public class Console extends WindowAdapter implements WindowListener, ActionListener, Runnable { public static JFrame frameconsole; private JTextArea textArea; private Thread reader; private Thread reader2; private boolean quit; JButton button=new JButton("Clear"); JButton button2=new JButton("Copy"); private final PipedInputStream pin=new PipedInputStream(); private final PipedInputStream pin2=new PipedInputStream(); public Console() { // create all components and add them frameconsole=new JFrame("JavaCPC Console"); Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize(); Dimension frameSize=new Dimension((int)(screenSize.width/2),(int)(screenSize.height/2)); int x=(int)(frameSize.width/2); int y=(int)(frameSize.height/2); frameconsole.setBounds(x,y,500,500); textArea=new JTextArea(); textArea.setEditable(true); textArea.setAutoscrolls(true); textArea.setBackground(Color.BLACK); textArea.setForeground(Color.GREEN); textArea.setCaretColor(Color.WHITE); textArea.setSelectedTextColor(Color.RED); textArea.setSelectionColor(Color.ORANGE); textArea.setBorder(new BevelBorder(BevelBorder.LOWERED)); textArea.setFont(new Font("", 1, 10)); button.setForeground(Color.RED); button.setBackground(Color.DARK_GRAY); button.setBorder(new BevelBorder(BevelBorder.RAISED)); button.setCursor(java.awt.Cursor.getPredefinedCursor(java.awt.Cursor.HAND_CURSOR)); button2.setCursor(java.awt.Cursor.getPredefinedCursor(java.awt.Cursor.HAND_CURSOR)); button2.setForeground(Color.YELLOW); button2.setBackground(Color.DARK_GRAY); button2.setBorder(new BevelBorder(BevelBorder.RAISED)); frameconsole.getContentPane().setLayout(new BorderLayout()); frameconsole.getContentPane().add(new JScrollPane(textArea),BorderLayout.CENTER); frameconsole.getContentPane().add(button2,BorderLayout.NORTH); frameconsole.getContentPane().add(button,BorderLayout.SOUTH); frameconsole.setAlwaysOnTop(true); frameconsole.setVisible(false); frameconsole.addWindowListener(this); button.addActionListener(this); button2.addActionListener(this); button.setFocusable(false); button2.setFocusable(false); try { PipedOutputStream pout=new PipedOutputStream(this.pin); System.setOut(new PrintStream(pout,true)); } catch (java.io.IOException io) { textArea.append("Couldn't redirect STDOUT to this console\n"+io.getMessage()); } catch (SecurityException se) { textArea.append("Couldn't redirect STDOUT to this console\n"+se.getMessage()); } try { PipedOutputStream pout2=new PipedOutputStream(this.pin2); System.setErr(new PrintStream(pout2,true)); } catch (java.io.IOException io) { textArea.append("Couldn't redirect STDERR to this console\n"+io.getMessage()); } catch (SecurityException se) { textArea.append("Couldn't redirect STDERR to this console\n"+se.getMessage()); } quit=false; // signals the Threads that they should exit // Starting two seperate threads to read from the PipedInputStreams // reader=new Thread(this); reader.setDaemon(true); reader.start(); // reader2=new Thread(this); reader2.setDaemon(true); reader2.start(); System.out.println("JavaCPC by Devilmarkus"); System.out.println("Feel free to use this console as notepad, too..."); } public synchronized void windowClosing(WindowEvent evt) { frameconsole.setVisible(false); // default behaviour of JFrame frameconsole.dispose(); } public synchronized void actionPerformed(ActionEvent evt) { if (evt.getSource() == button) { textArea.setText("JavaCPC by Devilmarkus\nconsole cleared...\n"); } if (evt.getSource() == button2) { textArea.selectAll(); textArea.copy(); System.out.println("Console content copied to clipboard."); } } public synchronized void run() { try { while (Thread.currentThread()==reader) { try { this.wait(100);}catch(InterruptedException ie) {} if (pin.available()!=0) { String input=this.readLine(pin); textArea.append(input); textArea.select(2000000000, 2000000000); } if (quit) return; } while (Thread.currentThread()==reader2) { try { this.wait(100);}catch(InterruptedException ie) {} if (pin2.available()!=0) { String input=this.readLine(pin2); textArea.append(input); textArea.select(2000000000, 2000000000); } if (quit) return; } } catch (Exception e) { textArea.append("\nConsole reports an Internal error."); textArea.append("The error is: "+e); } } public synchronized String readLine(PipedInputStream in) throws IOException { String input=""; do { int available=in.available(); if (available==0) break; byte b[]=new byte[available]; in.read(; input=input+new String(b,0,b.length); }while( !input.endsWith("\n") && !input.endsWith("\r\n") && !quit); return input; } }[/code] In der Main-Klasse rufe ich nun diese Konsole auf: [code].......... public void start() { .......... new Console(); ........ Die Konsole läuft also im Hintergrund... Anschliessend, wenn ich die Konsole öffnen will: Console.frameconsole.setVisible(true); Ich hoffe, das hilft... Edit: So schaut das Ergebnis aus. Es hat ein Design und 2 Knöpfe: - Konsole leeren - Inhalt in die Zwischenablage kopieren - Ausserdem kann man die Konsole für Notizen verwenden (Finde ich nützlich) Bearbeitet 11. September 2008 von Devilmarkus Zitieren
JasonDelife Geschrieben 15. August 2009 Geschrieben 15. August 2009 @roota Was hat das mit dem Thema zu tun? Das gehört in einen neuen Thread! Zum Problem: Probiere statt "\n" mal System.getProperty("line.separator"). Vllt. geht das ja. Ach übrigens: Die for-Schleife ist doch total unnötig. Grüße, JasonDelife. Zitieren
roota Geschrieben 16. August 2009 Geschrieben 16. August 2009 ja stimmt, ne in der for schleife war anfangs ein anderer Befehl, hatte es schnell für den Zweck umgeändert! Zitieren
roota Geschrieben 16. August 2009 Geschrieben 16. August 2009 mh das geht auch nicht, beim Ausgeben kopiert der alles automatisch nochmal, das aufteilen in die einzelnen Zeilen ist auch damit net möglich! Ich möchte eigentlich nur die zuletzt eingegebene Zeile auslesen! Den String vergleichen und damit einen Funktionsaufruf starten! Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.