console : Java Glossary


console

A window where you can view the System.out.println and other debugging data from a Java application or Applet. Sometimes it will be covered over by the Applet or Java Web Start app. Sometimes you have to enable it.

In Java 1.5, if an Applet fails, it will sometimes display a broken icon. Right click on it and that will give you the option to look at the Java console to learn why. The stack trace might mean nothing to you, but it will to those who wrote the program. Copy the entire contents to help in diagnosing the problem.

Engaging the Java Console in Your Browser Console Window Size
java.exe vs javaw.exe Reading From The Console
Writing to the Console Colours
Import Static Shortcut Learning More
Merging System.out and System.err Links
Redirection

Engaging the Java Console in Your Browser

If you are in a browser you have to enable to console before you can see it. Avant and Chrome do not support Java, or more precisely, their support does not work. Safari does support the Java console. Browsers no longer have menu-items to engage and disengage the console. You do it in the Java Control Panel.

Windows: Engaging the Console

Last revised/verified: 2012-03-06
  1. On Vista/W2008/W7-32/W7-64/W8-32/W8-64, click Programs.
  2. Double click Java.
  3. Click Advanced.
  4. Click + Java console.
  5. Click Show Console.
  6. Click OK.
  7. Click File.
  8. Click Close.

Mac OS Leopard Engaging the Console

Last revised/verified: 2012-03-06

In Mac OS Leopard, you also have to enable the console on the Java Preferences Application.

  1. Applications
  2. Utilities
  3. Java Preferences Application.
  4. Click Advanced.
  5. Click Show Console.
  6. Restart your browser.
Finally, to make the console visible:
  1. Click Tools.
  2. Click Sun Java console.

java.exe vs javaw.exe

You can hide the console by using javaw.exe (java without) instead of using java.exe.

One of the most useful associations to set up is to make *.jar files executable with java.exe. Then you can just type the name of the jar on the command line to start it executing. If you use javaw.exe rather than java.exe you won’t see the console output. Watch out, Java installers often associate *.jar files with javaw.exe instead of java.exe, overriding your setting.

The associations for *.jar and *.jnlp are fragile. They mysteriously change to obsolete versions, or javaw.exe version without a console or even unrelated programs like Winzip.exe. Using the java.exe -jar myjar.jar syntax in your bat/btm files rather is more robust than myjar.jar. It works even when the associations are corrupted.

Writing to the Console

You normally do I/O to the console with System.out.println. For details of how, see the File I/O Amanuensis. Mainly the console is used for debugging or crude programs like HelloWorld. There are no cursor positioning or colour commands. In theory you could insert your own ANSI (American National Standards Institute) control sequences, but Windows/NT just ignores them, even if you install ANSI.SYS. If your console supports ANSI sequences you could use:
out.print( "\033[H\033[2J" );
You can effectively clear the console with a println loop of about 80 lines. This won’t clear a log file of course. You can also write to the less-redirectable error log with System.err.println.

Some consoles don’t display System.out data, just System.err. It is thus probably best to get in the habit of using System.err.println for debugging or error message output.

Import Static Shortcut

The Java version 1.5 or later import static feature can be used to abbreviate code to write to the console.

Merging System.err and System. out

To merge System.err and System. out you could use setErr and setOut to point them to the same PrintStream, e.g. System.setErr ( System. out );

Redirection

You can redirect any output to the console with the usual DOS (Disk Operating System) piping commands, namely > and |. You can also internally redirect System.out to a file with System.setOut, and System.err to a file with System.setErr. You can also, of course, write directly to files using a PrintWriter. If you use 4DOS or tcc/TakeCommand you can redirect stdout with 1> and stderr with 2>. You can also use the tee utility to get the output both in a file and on the console. See tcc/TakeCommand for details. You can find similar features in other script languages.

Console Window Size

In NT or tcc you can expand the size of the DOS window and make it scrollable. Right click the DOS box shortcut ⇒ properties ⇒ layout ⇒ screen buffer size ⇒ height That way you can scroll back and see stuff that has rolled off the screen.

Reading From the Console

When you use the console for input, you use Ctrl-Z to signal EOF (End Of File) in Windows and Ctrl-D in most Unices.

You can’t read a single character from the console, the way you can with getC in C. The operating system delivers I/O a line at a time. The program can’t read the characters in a line until the user hits Enter. This allows the user to correct mistakes with BS before Java sees them.

How do you get around this? AWT (Advanced Windowing Toolkit) keystroke events are registered immediately. You can thus accept data in a component. You need to fake a console with a TextArea or similar component.

Peter van der Linden created a set of simple console routines for reading character data in various formats called EasyIn. I seem to recall him also writing a keystroke by keystroke class, but I can find no record of it.

Learn By Experimenting

When you write on the console with Java strange things happen to the Unicode characters. They get modified in various ways so what you see on the screen can be quite astonishing. Factors that affect what you see include:

Rather than trying to explain what happens, I suggest you experiment with the following program that will send a selection of common Unicode characters to the console. Have a look at the results to understand what to expect with your own programs.

Colours

Java does not give you any means to control the foreground or background colours of the console. You might experiment with ANSI sequences in Windows, but they will not work on other platforms. If you want colour, write your own scrolling logging class perhaps based on JTable. It is much simpler than you would think. Then you can go crazy with fonts, colours, fading, gradients etc.

Learning More

Oracle’s Javadoc on System.err : available:
Oracle’s Javadoc on System.out : available:
Oracle’s Javadoc on System.in : available:
Oracle’s Javadoc on System.setErr : available:
Oracle’s Javadoc on System.setOut : available:
Oracle’s Javadoc on System.setIn : available:

This page is posted
on the web at:

http://mindprod.com/jgloss/console.html

Optional Replicator mirror
of mindprod.com
on local hard disk J:

J:\mindprod\jgloss\console.html
logo
Please the feedback from other visitors, or your own feedback about the site.
Contact Roedy. Please feel free to link to this page without explicit permission.
Blog
IP:[65.110.21.43]
Your face IP:[54.211.80.155]
You are visitor number