Applets should be debugged using the java debugger
utility jdb. Also make sure to compile your .java files
with -g option with javac. To begin debugging your
applet:
1.
Open Java Control Panel. Click
Java > View. Specify the following
parameters in the Java Runtime Parameters with each parameter
separated by a comma as follows:
-agentlib:jdwp=transport=dt_shmem,address=jdbconn,server=y,suspend=n
See JPDA
Connection and Invocation for the details on the possible runtime parameters
for debugging.
3.
Run the command jdb
-attach <address> in a DOS command prompt. <address> is the name mentioned in the step. For
example, if <address> is jdbconn, you
will run the command as jdb
-attach jdbconn
To learn more
about the Java Debugger (jdb), see The
Java Debugger.
4.
Once the jdb is attached
to the VM, you can set up breakpoints in the applet. Don’t forget to issue the use
command first (see The
Applet Debug Primer for debugger basics)
5.
When the applet in the browser reaches the
breakpoint, it will stop executing, and you will see the debugger waiting for
your input to continue debugging.
When debugging applets in Java Plug-in, make sure that only
one instance of the browser is being used for debugging using the same
connection address at the same time. Otherwise, it will result in a conflict,
since the Java Runtime for each instance of the browser will try to gain
exclusive access to the connection address. To debug applets in both Internet
Explorer and supported Mozilla browsers, run either Internet Explorer or
supported Mozilla browsers with Java Plug-in—but not both at the same time.
Debugging applets in Java Plug-in with Active Desktop is
discouraged because an instance of Internet Explorer will always be running in
the desktop process during the lifetime of the user session.
You can use other debuggers from IDEs like Borlands JBuilder or Symantec's VisualCafe, instead of jdb. To
use these debuggers, you will need to change the project option in these IDEs
to attach Java Plug-in in the browser process on the same machine or
remote machine. Different Java Runtime Parameters may also be required in the Java Control Panel. For more information, refer Java
debugger or IDE manuals.
Java Console is a simple console window for redirecting all
the System.out
and System.err
messages. The console window is disabled by default. It can be enabled
from the Java Control Panel or the task bar. If the console is enabled, you
will see the console window appear when Java Plug-in is used in the browser.
For more information on Java Console see Java Console documentation.
For information on Java Console see the Java
Console section of the Deployment
Guide.
The Java Plug-in trace file records all the debug, System.out, and System.err
messages. The trace file is disabled by default but is automatically enabled
when the Java Console is enabled. The trace file is located by default at C
:\Documents and Settings\<
username>\Application Data\Sun\Java\Deployment\log
in the user.dir
.
The trace file has the naming convention .plugin<
version>.trace
where
<version> indicates the version of Java installed on the system.
The user.dir
directory
contains various log and trace files. In Windows 2000 and Windows XP this file
is located at the following location:
C:\Documents and Settings\<
username>\Application Data\Sun\Java\Deployment.
The Application Data folder and its contents are hidden by
default in Windows.
javaplugin.trace
propertyThis property controls whether Java Plug-in prints its
trace messages during execution. This is useful to applet developers to
determine what is occuring within
Java Plug-in. To enable tracing follow the steps given below:
·
Open Java Control Panel
·
Click Advanced >
Debugging
·
Select Enable Tracing checkbox .
java.security.debug
propertyThis property controls whether the security system of the
Java Runtime Environment prints its trace messages during execution. This is usful when a security exception is thrown in an applet or
when a signed applet is not working. The following options are supported:
·
access
— print all checkPermission
results
·
jar
— print jar verification
information
·
policy
— print policy information
·
scl
— print permissions SecureClassLoader
assigns
The following options can be used with access
:
·
stack
— include stack trace
·
domain
— dumps all domains in context
·
failure
— before throwing exception, dump the stack
and domain that didn't have permission
For example, to print all checkPermission
results and dump all domains in context,
perform the following actions:
·
Open Java Control Panel
·
Click Java > View. The Java
Runtime Settings dialog box is displayed.
·
Type -Djava.security.debug=access:stack
in the Java Runtime Parameters
field.
Java Plug-in provides a rich set of documentation to help
developers use the various features of Java Plug-in. The documentation includes
a FAQ,
which includes some of the most frequently asked questions by developers. Make
sure you read and understand these documents before applet development, as it
may save you hundreds of hours in debugging.
Although Java Plug-in provides the Java 2 Runtime
Environment within Internet Explorer and supported Mozilla browsers, most of
the facilities are provided by the Java 2 Runtime itself, rather than by Java
Plug-in. Therefore, if a problem occurs in Java Plug-in, it may be either a problem in Java Plug-in, the Java 2 Runtime itself
or a user error. It is extremely important to determine where bugs originate,
as it will affect the speed of bug evaluation and fixing. Here are some
suggestions for isolating bugs:
1.
Run the applets in both Internet Explorer and
supported Mozilla browsers through Java Plug-in.
2.
Run the applets in appletviewer
. Java Plug-in is
mainly derived from appletviewer
and has inherited problems from appletviewer
as well. This
step should be performed only if the applet doesn't require specific browser
facilities that Java Plug-in provides, like HTTPS or RSA signing.
3.
If the applet fails in appletviewer
, it is likely
the problem is in the Java 2 Runtime Environment—and
not in Java Plug-in.
4.
If the applet fails in only one of the browsers,
IE or supported Mozilla browsers, it is likely a Java Plug-in problem.
5.
If the applet fails in both browsers but not appletviewer
, it could be
either a Java Plug-in problem or user error. Please examine the applet code to
see if it makes any assumptions about the execution environment. For example,
in appletviewer
the current
directory is set to the current directory in the shell when appletviewer
is launched,
whereas the current directory in Java Plug-in may be set to the browser's
directory. Therefore, loading resources from the current directory may work in appletviewer
but not in Java
Plug-in.
6.
Try to reproduce the problem on other machines
or platforms. In some cases, the root of the problem may be in the machine
configuration, e.g., an improper DNS setup.
7.
If you have identified the problems in the Java
2 Runtime Environment or Java Plug-in, please follow the instructions in the
next section to submit a bug report to the appropriate product categories.
To submit a bug report, go to the Java Development
Connection's Bug Database
. Before submitting a bug, search the BugParade to
determine if the bug has already been reported. In some cases, a workaround may
also have been suggested. If the bug is not already reported, submit a new bug
report to the Java Plug-in team. In the bug report, include the following
information:
·
Complete description of the problem and
step-by-step instructions for reproducing it;
·
Error messages captured by Java Console or trace
file;
·
Proxy configuration information, e.g., auto
proxy configuration with proxy configuration file attached;
·
Browser and platform information, e.g., supported
Mozilla browsers on Win 2000;
·
A test case demonstrating the problem;
·
Specify whether the problem occurs in other
browsers and appletviewer
;
·
Specify any workaround available;
·
Specify personal information—your
name and email address—so you may be contacted if
additional information is required.
To submit a feature request, do so through the Report A Bug or Request a Feature page.In
the feature request, please make sure the following information is included:
·
Complete description of the requested feature;
·
How this feature will improve the quality of
your product or Java Plug-in in general.
The purpose of the Java Plug-in Feedback alias, java-plugin-feedback@sun.com, is
for customers to provide feedback on product features and the product in
general. This alias is not intended for bug report submission. To submit a bug
report, please follow the instructions given above.
|
Copyright ©
1993, 2011, Oracle and/or its affiliates. All rights reserved. |