Microsoft KB Archive/195175

= How To Send Text to the Visual J++ Output Window =

Article ID: 195175

Article Last Modified on 7/13/2004

-

APPLIES TO


 * Microsoft Visual J++ 6.0 Standard Edition
 * Microsoft Software Development Kit for Java 3.1
 * Microsoft Software Development Kit for Java 3.2

-



This article was previously published under Q195175



SUMMARY
There are several ways to send debug text strings to the Visual J++ Output window for diagnosing runtime problems. These methods will work only when you launch your application from the Visual J++ environment. Applications launched standalone will not be able to access the Output window.



MORE INFORMATION
The first way to send text strings to the Visual J++ Output window is by using the print and println methods of the com.ms.debug.Debugger.out package. When you call these methods from a Java application that is spawned from JVIEW or WJVIEW in either debug or release builds, the text string will appear in the Visual J++ Output window.

Here is a simple sample that demonstrates using the println method: public class Class1 { public static void main (String[] args) { com.ms.debug.Debugger.out.println("Hello World"); } } When this class is built and run from within Visual J++, you will see the string "Hello World" appear in the Visual J++ Output window. Notice that the string is output whether you build your application in Debug or Retail mode.

Another way to send text strings to the Visual J++ Output window is by using the Windows Foundation Classes (WFC) methods in the com.ms.wfc.util.Debug package. This package is different from the com.ms.debug.Debugger package in that the methods are conditionally compiled so that they exist only in Debug builds of your application. When you build your application for Retail release, the calls to output diagnostic strings through the WFC Debug package will not be compiled into your code, saving size and possibly execution speed.

Here is a WFC button click message handler that will output a text string to the Visual J++ Output window: private void button1_click(Object source, Event e) { com.ms.wfc.util.Debug.println("Hello World"); } Notice that if you build your form in Debug mode (selectable in the Project Properties dialog box), the text string will appear in the Visual J++ Output window when you click button1. If you then build your application in Retail mode and execute from Visual J++, the text will no longer appear in the Output window. In fact, the method call will no longer exist in your code.

One thing to be aware of with the com.ms.wfc.util.Debug package is that it will pass output only to the Visual J++ Output window if you are executing under WJVIEW, as is done in most WFC Project templates. If you are executing your application with JVIEW--either by using the Console Application project template or by selecting the Launch as a Console Application check box in the Project Properties Launch tab, your output will go to the MS-DOS CONSOLE window by default. For additional information, please see the following article in the Microsoft Knowledge Base:

194187 Redirecting WFC Debug Output to the VJ6 Output Window

This article demonstrates how to redirect this output from the Console window to the Visual J++ Output window so that you can utilize the benefits of Conditional Compilation in your Java Console applications as well.

One further point is that all Console output from an application run under WJVIEW is rerouted to the Visual J++ Output window. This means that for applications that are run from the Visual J++ IDE and use WJVIEW to launch the Virtual Machine, System.out.println method calls will also appear in the Visual J++ Output window for both Retail and Debug builds.

The following two tables show where output for the calls discussed in this article will appear, depending upon whether they are run under JVIEW or WJVIEW, and whether they are built in DEBUG or RETAIL modes.

Keywords: kbhowto KB195175

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.