Veröffentlicht 5. September 200817 j 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.
5. September 200817 j System.out.println("uiuiuiTIFFIII!!"); gerade für dich ein wertvoller Hinweis: RTFM Bearbeitet 5. September 200817 j von tha_specializt
5. September 200817 j 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.
5. September 200817 j 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.
5. September 200817 j 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
8. September 200817 j 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ß
9. September 200817 j Was Spricht denn dagegen ein eigenes Frame zu machen und die Ausgaben dort in eine TextArea zu lenken?
11. September 200817 j 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 200817 j von Devilmarkus
15. August 200916 j @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.
16. August 200916 j ja stimmt, ne in der for schleife war anfangs ein anderer Befehl, hatte es schnell für den Zweck umgeändert!
16. August 200916 j 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!
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.