# Using the Java Plug-in Control Panel to Set Plug-in Behavior/Options in Release 1.4.1

This section covers the following topics:

- Overview
- Starting the Java Plug-in Control Panel
- Saving Options
- Control Panel Help
- Setting Control Panel Options
  - Basic Panel
  - Advanced Panel
  - Browser Panel
  - Proxies Panel
  - Cache Panel
  - Certificates Panel
  - Update Panel
  - About Panel

## Overview

The JavaTM Plug-in Control Panel enables you to change the default settings used by the Java Plug-in at startup. All applets running in an active instance of Java Plug-in use these settings.

## Starting the Java Plug-in Control Panel

Start the Java Plug-in Control Panel as follows:

On Windows: From the Windows Control Panel, double-click the Java coffee-cup icon labeled Java Plug-in to launch the Java Plug-in Control Panel.

On Solaris and Linux: You can run the Control Panel by launching the ControlPanel executable file. In the Java 2 SDK, this file is located at:

>     <SDK installation directory>/jre/bin/ControlPanel

It is also located at:

> `<SDK installation directory>/bin/ControlPanel`

For example, if your Java 2 SDK is installed at `/usr/j2se`, launch the Control Panel with this command:

>     /usr/j2se/jre/bin/ControlPanel

In a Java 2 Runtime Environment installation, the file is located at:

>     <JRE installation directory>/bin/ControlPanel

You can also use Netscape to visit the Control Panel applet page, which was installed inside the JRE directory as the file `ControlPanel.html`. In the Java 2 SDK this file is located at:

>     <SDK installation directory>/jre/ControlPanel.html

In the JRE:

>     <JRE installation directory>/ControlPanel.html

## Saving Options

When you have completed your changes to the Control Panel options, click Apply to save the changes. Click Reset to cancel your changes and reload the last values that were entered and applied. Note that this is not the same as the set of default values that were originally set for Java Plug-in when it was installed.

## Control Panel Help

Help for Java Plug-in is available from any panel in the Control Panel. Help comes up in its own window in response to pushing the Help button and looks like this:

## Setting Control Panel Options

There are eight sub-panels (tabs) in the Java Control Panel. From six of them you can set various options. The panels are labeled:

- Basic
- Advanced
- Browser
- Proxies
- Cache
- Certificates
- Update Panel
- About

Each is described separately below.

## Note The settings shown for check boxes and radial buttons in each panel below, with the exception of the Browser panel, are the default (installation) settings. The check boxes for the Browser panel are determined according to user selection during installation.

### Basic Panel

The Basic panel looks like this:

Use the Basic panel to set the following options:

Enable Java Plug-in
  Checking this option enables Java Plug-in to run applets. If this option is left unchecked, Java Plug-in does not run any applets. The default setting is with the Plug-in enabled (checked).
Show Java Console
  Displays the Java Console while running applets. The console displays messages printed by `System.out` and `System.err` objects. It is useful for debugging problems.
Hide console
  The console is running but hidden. This is the default setting (checked).
Do not start console
  The console is not started.
Show Exception Dialog Box
  Show an exception dialog box when exceptions occur. The default setting is not to show the exception dialog box (unchecked).

### Advanced Panel

The Advanced panel looks like this:

Use the Advanced panel to set the following options:

Java Runtime Environment
  Enables Java Plug-in to run with any Java 2 JRE or SDK, Standard Edition v 1.4 installed on your machine. Java Plug-in 1.4 is delivered with a default JRE. However, you can override the default JRE and use an older or newer version in the 1.4 family. The Control Panel automatically detects all versions of the Java 2 SDK or JRE installed on your machine, and it displays in a list box all versions which you can use. The first item in the list will always be the Java Plug-in default; the last item will always say Other. If you choose Other, you must specify the path to the Java 2 JRE or SDK, Standard Edition v 1.4 that you wish to use. Only advanced users should change this option.

## Note Only advanced users should change this option. Changing the default JRE is not recommended.

#### Java Runtime Parameters

> You can override the Java Plug-in default startup parameters by specifying custom options in the Java Runtime Parameters field. The syntax is the same as used with parameters to the java command line invocation. See the Java 2 Standard Edition (J2SE) documentation for a full list of command line options. The URL below is subject to change:

> > `http://java.sun.com/j2se/1.4/docs/tooldocs/<platform>/java.html`

> > where `<platform>` is one of the operating systems: solaris, linux, windows.

> Below are some examples of Java runtime parameters.

> ## Note An alternate way to set Java runtime parameters is through the command line of a UNIX terminal or DOS window using the `_JAVA_OPTIONS` environment variable. This can be useful for debugging purposes.

> Enabling and disabling assertion support

> > To enable assertion support, the following system property must be specified in the Java Runtime Parameters:

> > > `-D[ enableassertions | ea ][:<package name>"..." | : <class name> ]`

> > To disable assertion in the Java Plug-in, specify the following in the Java Runtime Parameters:

> > > `-D[ disableassertions | da ][:<package name>"..." | : <class name> ]`

> > See Assertion Facility for more details on enabling/disabling assertions.

> > Assertion is disabled in Java Plug-in code by default. Since the effect of assertion is determined during Java Plug-in startup, changing assertion settings in the Java Plug-in Control Panel will require a browser restart in order for the new settings to take effect.

> > Because Java code in Java Plug-in also has built-in assertion, it is possible to enable the assertion in Java Plug-in code through the following:

> > > `-D[ enableassertions | ea ]:sun.plugin`

> Tracing and logging support

> > Tracing is a facility to redirect any output in the Java Console to a trace file (`.plugin<version>.trace`).

> > > `-Djavaplugin.trace=true
> > > -Djavaplugin.trace.option=basic|net|security|ext|liveconnect`

> > If you do not want to use the default trace file name:

> > > `-Djavaplugin.trace.filename=<tracefilename>`

> > Similar to tracing, logging is a facility to redirect any output in the Java Console to a log file `(.plugin<version>.log`) using the Java Logging API. Logging can be turned on by enabling the property `javaplugin.logging`.

> > > `-Djavaplugin.logging=true`

> > If you do not want to use the default log file name, enter:

> > > `-Djavaplugin.log.filename=<logfilename>`

> > Furthermore, if you do not want to overwrite the trace and log files each session, you can set the property:

> > > `-Djavaplugin.outputfiles.overwrite=false`.

> > If the property is set to `false`, then trace and log files will be uniquely named for each session. If the default trace and log file names are used, then the files would be named as follows

> > > `.plugin<username><date hash code>.trace
> > > .plugin<username><date hash code>.log`

> > Tracing and logging set through the Control Panel will take effect when the Plug-in is launched, but changes made through the Control Panel while a Plug-in is running will have no effect until a restart.

> > For more information about tracing and logging, see the chapter called Tracing and Logging.

> Debugging applets in Java Plug-in

> > The following options are used when debugging applets in the Java Plug-in. For more information on this topic see the Debugging Support in the Java Plug-in Developer Guide.

> > > `-Djava.compiler=NONE
> > > -Xnoagent
> > > -Xdebug
> > > -Xrunjdwp:transport=dt_shmem,address=<connect-address>,server=y,suspend=n`

> > The `<connect-address>` can be any string (example: `2502`) which is used by the Java Debugger (`jdb`) later to connect to the JVM

> Default connection timeout

> > When a connection is made by an applet to a server and the server doesn't respond properly, the applet may appear to hang and may also cause the browser to hang because, since by default there is no network connection timeout.

> > To avoid this problem, Java Plug-in 1.4 has added a default network timeout value (2 minutes) for all HTTP connections. You can override this setting in the Java Runtime Parameters:

> > > `-Dsun.net.client.defaultConnectTimeout=<value in milliseconds>`

> > Another networking property that you can set is `sun.net.client.defaultReadTimeout`.

> > > `-Dsun.net.client.defaultReadTimeout=<value in milliseconds>`

> > ## Note Java Plug-in does not set `sun.net.client.defaultReadTimeout` by default. If you want to set it, do so through the Java Runtime Parameters as shown above.

> > Networking properties description:

> > `sun.net.client.defaultConnectTimeout``
> > sun.net.client.defaultReadTimeout`

> > > These properties specify, respectively, the default connect and read timeout values for the protocol handlers used by `java.net.URLConnection`. The default values set by the protocol handlers is `-1`, which means there is no timeout set.

> > > `sun.net.client.defaultConnectTimeout` specifies the timeout (in milliseconds) to establish the connection to the host. For example, for http connections it is the timeout when establishing the connection to the http server. For ftp connections it is the timeout when establishing the connection to ftp servers.

> > > `sun.net.client.defaultReadTimeout` specifies the timeout (in milliseconds) when reading from an input stream when a connection is established to a resource.

> > For the official description of these properties, see Networking Properties.

### Browser Panel

This panel relates only to Microsoft Windows installations; it does not appear in other installations. Check any browser for which you want Java Plug-in to be the default Java runtime, instead of the internal JVM of that browser. This is to enable `APPLET` tag support in Internet Explorer and Netscape 6 via Java Plug-in.

### Proxies Panel

The Proxies panel looks like this:

Use the Proxies panel to use the browser default settings or to override the proxy address and port for the different protocols.

Use browser settings
  Check this to use the browser default proxy settings. This is the default setting (checked).
Proxy information table
  You can override the default settings by unchecking the "Use browser settings" check box, then completing the proxy information table beneath the check box. You can enter the proxy address and port for each of the supported protocols: HTTP, Secure (HTTPS), FTP, Gopher, and Socks.
No proxy host
  This is a host or list of hosts for which no proxy/proxies are to be used. No proxy host is usually used for an internal host in an intranet environment.
Automatic proxy configuration URL
  This is the URL for the JavaScript file (.js or .pac extension) that contains the `FindProxyForURL` function. `FindProxyForURL` has the logic to determine the proxy server to use for a connection request.

For additional details about proxy configuration, see the chapter called Proxy Configuration.

### Cache Panel

The Cache panel looks like this:

## Note The cache referred to here is the sticky cache; i.e., the disk cache created and controlled by Java Plug-in which the browser cannot overwrite. See Applet Caching.

#### Enable Caching

> Check this to enable caching. This the default setting (checked). With applet caching enabled, performance is improved because once an applet is cached it no longer needs to be downloaded when referenced again.

> The Java Plug-in caches files of the following types downloaded via HTTP/HTTPS:

> > `.jar` (jar file)
> > `.zip` (zip file)
> > `.class` (java class file)
> > `.au` (audio file)
> > `.wav` (audio file)
> > `.jpg` (image file)
> > `.gif` (image file)

#### View files in Cache

> Press this to view the cached files. Another dialog (Java Plug-in Cache Viewer) will pop up and display the cached files. The Cache Viewer displays the following information about the files in cache: Name, Type, Size, Expire Date, Last Modified, Version, and URL. In the Cache Viewer you can also selectively delete files in the cache. This is an alternative to the Clear Cache option described below, which deletes all files in the cache.

#### Clear Cache

> Press this to clear all files in the cache. You will be prompted (Erase all files in ... _cache?) before the files are removed.

#### Location

> You can use this to specify the location of the cache. The default location of the cache is `<user home>/.jpi_cache`, where `<user home>` is the value of the system property `user.home`. Its value depends on the OS.

#### Size

> You can check Unlimited to make the cache unlimited in size; or you can set the Maximum size of the cache. If the cache size exceeds the specified limit, the oldest files cached will be removed until the cache size is within the limit.

#### Compression

> You can set the compression of the JAR cache files between None and High. While you will save memory by specifying higher compression, performance will be degraded; best performance will be achieved with no compression.

### Certificates Panel

The Certificates panel looks like this:

Four types of certificates may be selected:

- Signed applet
- Secure site
- Signer CA
- Secure site CA

#### Signed applet

> These are certificates for signed applets that are trusted by the user. The certificates that appear in the signed applet list are read from the certificate file `jpicerts<version>` located in the `<user home>/.java` directory.

#### Secure site

> These are certificates for secure sites. The certificates that appear in the Secure site list are read from the certificate file`jpihttpscerts<version>` located in the `<user home>/.java` directory.

#### Signer CA

> These are certificates of Certificate Authorities (CAs) for signed applets; they are the ones who issue the certificates to the signers of signed applets. The certificates that appear in the Signer CA list are read from the certificate file `cacerts`, located in the `<jre>/lib/security` directory.

#### Secure site CA

> These are certificates of Certificate Authorities (CAs) for secure sites; they are the ones who issue the certificates for secure sites. The certificates that appear in the Secure site CA list are read from the certificate file `jssecacerts`, located in the `<jre>/lib/security` directory

For Signed applet and Secure site certificates, there are four options: Import, Export, Remove, and Detail. The user can import, export, remove and view the details of a certificate.

For Signer CA and Secure site CA, there is only one option: Detail. The user can only view the details of a certificate.

### Update Panel

The Update panel looks like this:

###

When a security bug is found, an update is issued. The mechanism for getting the update is through this panel.
To get the update, click on the Get Java Update button. The browser will be launched and point to:

> `http://java.sun.com/getjava/javaupdate`

The page will provide instructions and a link to the update binary. Download the update binary and double-click it.

Java Update will be launched. It will search the JRE on your system and apply the fix transparently. After the fix is applied, it will tell you so.

### About Panel

The About panel looks like this: