Skip to main content
    Country/region [select]      Terms of use
     Home      Products      Services & industry solutions      Support & downloads      My account     
Servers  >  Mainframe servers  >  Software  >  

Service summary - Java for OS/390

Java logo

The Remote Abstract Windowing Toolkit (RAWT) is an implementation of Abstract Windowing Toolkit (AWT) for Java. It allows Java applications that run on an OS/390 host at Release 4 or higher to display GUI data to and receive GUI data from a remote workstation.

RAWT is best used with applications that are not graphics intensive.

Java applications display and interact with GUI interfaces by using AWT application programming interfaces (APIs) which are part of SUN's JDK class library. The JDK contains a machine-dependent implementation of AWT that runs on graphics-capable hardware. The classic implementation of AWT restricts the execution of the application to a single Java Virtual Machine (JVM) and requires native graphics capabilities from the host.

RAWT implements all AWT APIs without using any native code. The OS/390 host that executes the AWT APIs is not required to use graphics. All graphics services are carried out via RAWT to a remote workstation. This allows an application running on OS/390 to display graphical content from a remote workstation through RAWT. This is transparent to the Java application.

RAWT is an alternative to the dependency on X-Window support. It provides a way for end users on workstations that are Java enabled to interact with their applications. RAWT is intended for those types of applications which are not expected to be graphic intensive in nature. Examples include installation and administration applications.RAWT should not be used in critical paths of applications where high performance is required.

In order to use RAWT, you need Transmission Control Protocol/Internet Protocol (TCP/IP) set up and the appropriate GUI downloaded to your workstation. When you set the correct environment variables for AWT GUI instances, the Java application automatically uses RAWT. You do not need to modify the application itself.

If you are running the JDK 1.1.6 level of the code, the Application Host code for RAWT is in the current level of Java for OS/390. The required GUIs need to be downloaded.

If you are running the JDK 1.1.8 level of the code, then the RAWT is an optional component (it is not part of the base product).

  • If you install this optional component using SMP/E (either from web or tape), then the host and GUI code will be installed onto the JVM. You will then need to download the appropriate GUI to your workstation.

If you have already registered for the Java for OS/390 code, the GUIs can be downloaded from the page you were sent that links to the code.

RAWT Questions and Answers (Q&As)

What can I do with RAWT that I cannot do with AWT?

The following illustrates several situations in which you can use RAWT but not AWT:

  • You have a powerful S/390 Java server host with excellent capacity and database capabilities. You want to exploit those capabilities, but your PC does not have an X-Server. You also do not want to split your Java application into GUI and computational parts. In this case, RAWT extends the graphics capabilities of OS/390 beyond those which AWT can provide.
  • You have a Java application that can run locally on your desktop (PC, NC, etc.) with AWT. However, it makes an excessive demand of your desktop resources. In this case, you can run your application on the powerful OS/390 and get the GUI components on top of your display.
  • You developed a complex Java application that uses native resources in your LAN environment and want to demonstrate it to customers. You cannot ship, or may be reluctant to ship, the entire application to the customers. In this case, you can use RAWT to bring the demo to your customer's desktop without having to install and set up the application at your customer's site.
  • You installed a complex Java product that uses native resources in your LAN environment, and you encounter a bug. In order to correct the bug, the product developer needs to reproduce the bug in the laboratory. This bug can be difficult to reproduce. Using RAWT, the developing laboratory can run the test case in the user's environment and monitor debugging traces on the user's remote display.

Back to Questions and Answers

Is RAWT a replacement to SUN's AWT?

No. RAWT is another implementation of SUN's AWT.

Back to Questions and Answers

Does RAWT contain any machine-dependent code?

No. RAWT consists of 100% pure Java classes. The GUI side is downloadable and contains the appropriate Java Run-time Environment (JRE) needed to run RAWT.

Back to Questions and Answers

Do I need to install a JDK or Java run-time environment (JRE) on my workstation to run RAWT?

No. The GUI files that you download to your workstation contain a JRE (which is all that you need).

Back to Questions and Answers

What are the configuration requirements for using RAWT for Java?

You must have Transmission Control Protocol/Internet Protocol (TCP/IP) set up on your desktop and the appropriate GUI downloaded to your workstation.

The user's desktop from which the graphics are being displayed must have a native AWT implementation.

OS/390 at Release 4 or higher must have Java for OS/390 at the JDK 1.1.6 level, including the April 1999 PTF.

Back to Questions and Answers

What does the GUI file contain?

The GUI file that you download to your workstation contains the appropriate Java run-time environment (JRE) to execute the code.

Back to Questions and Answers

Do I need to modify my Java application in order to run it on OS/390 with RAWT?

No. The remote presentation and event posting are transparent to the application. That is, any Java application that runs with native AWT on an OS/390 system will run the same way with RAWT, without your making any modification.

Back to Questions and Answers

How does the Java run-time environment identify that the application is using RAWT?

When a Java run-time starts execution, it reads several standard system properties as well as other properties. One of these properties is awt.toolkit, which specifies the name of the class that implements the abstract java.awt.Toolkit class. This java.awt.Toolkit class is used as the default AWT user for all user interface components. To set the RAWT as the Toolkit, set the fully qualified class name that implements RAWT to this property.

Back to Questions and Answers

How does a Java application perform when using RAWT?

RAWT is slower than running with a local native implementation of AWT as it must communicate with the remote GUI workstation. Because of this, RAWT should not be used in critical paths of applications where high performance is required.

RAWT is intended for those types of applications which are non-graphics intensive. For such uses, RAWT often performs as well or better than an X-windows based implementation of AWT. RAWT is not intended for graphics intensive applications such as those based upon SWING.

Back to Questions and Answers

How does RAWT differ from X-Server in remote presentation?

From the user's perspective, RAWT and X-Server differ in several respects:

  • X-Server is a solution for remote presentation at a general system level, whereas RAWT is a solution only for Java applications.
  • X-Server solutions are machine-dependent, whereas RAWT for Java can run on any host with a compliant JDK.
  • In order to use an X-Server solution for Java remote presentation you must use X-Client on the OS/390 in which the application is running and a machine-dependent X-Server on the user's workstation where the GUI presentation is being made.

Back to Questions and Answers

Can I run Java applets with RAWT?

Yes. RAWT can run Java applets as follows:

  • On the GUI side:
    Run RAWT as usual.
  • On the OS/390 side:
    Run the sun.applet.AppletViewer class with usual RAWT options and provide the html file for the applet as a parameter to the sun.applet.AppletViewer class. The code page must be appropriately set.

    The format of the command at the OS/390 side is:
    java -DRmtAwtServer=

    <GUIStation IP address>sun.applet.AppletViewer
    -encoding <code page> <HTML applet file>no

    For example:
    java -DRmtAwtServer= sun.applet.AppletViewer -encoding 8859_1 MyApplet.html

    Note: In the previous example, AppletViewer is a form of minimal browser and can be replaced by any Java written browser.

Back to Questions and Answers

Is RAWT NLS-enabled? If so, what are the supported languages?

Yes, RAWT is NLS-enabled and currently supports:

  • English
  • French
  • Italian
  • German
  • Spanish
  • Portugese (for both National and Brazil)
  • Japanese

Back to Questions and Answers

How do I uninstall RAWT?

The RAWT Application Host is part of the Java for OS/390 code. To prevent use of RAWT, see How do I turn off RAWT?

To uninstall RAWT on the GUI side:

  • Delete the directory where the GUI ( was installed.
  • If you set the RAWT_HOME environment variable in your startup script, remove it.

Back to Questions and Answers

How do I turn off RAWT?

Do not specify

-Dawt.toolkit=<rawt toolkit>
-DRmtAwtServer=<ip address>
in your invocation of the java command on the application host.

For example, you may have specified:

java -DRmtAwtServer= TicTacToe advancedLevel

To turn off RAWT, specify:

java TicTacToe advancedLevel

Back to Questions and Answers

Are there any restrictions imposed on a Java application running under the control of a SecurityManager?

Yes. If the SecurityManager is defined, RAWT classes invoke methods that call SecurityManager checks. In this case, RAWT might encounter a Security Exception. For example, an application might have a SecurityManager that might restrict System.exit calls. If the RAWT detects a connection ended (from the GUI side), and JVM tries to terminate, the following message appears:

java.lang.SecurityException: System.exit() forbidden by ApplicationName

The following are SecurityManager check methods that are called when running with RAWT:

  • SecurityManager.checkAccess(..)
  • SecurityManager.checkMemberAccess(..)
  • SecurityManager.checkExit(..)
  • SecurityManager.checkRead(String file)
  • SecurityManager.checkConnect(...)
  • SecurityManager.checkListen(...)
  • SecurityManager.checkAccept(...)
  • SecurityManager.checkPropertiesAccess(..)

Back to Questions and Answers

Can RAWT run Swing applications?

Yes. Since Swing is entirely based on AWT, it is automatically supported by RAWT. Because Swing is graphics intensive and RAWT is best used with applications that are not graphics intensive, approach this use with caution.

Back to Questions and Answers

    About IBM Privacy Contact