This document describes some of the changes made to the tools in version
1.3 of the Java 2 SDK, Standard Edition.
The javac compiler has been completely re-implemented in
version 1.3 of the Java 2 SDK. The compiler implementation from previous
releases of the SDK is still available as oldjavac.
The new javac is faster than the old java.
The nonstandard options, those prefixed with '-X', are no longer
supported. In particular, the -Xdepend option is no longer available.
When searching the classpath or sourcepath, the new compiler does not follow
symbolic links. In version 1.3, it is therefore necessary to avoid the use of
symbolic links within the directories appearing on the classpath and
sourcepath, and within their subdirectories.
When the new 1.3 compiler detects an error in a source file during a
compilation, it continues to parse the remaining source files and attempts
to identify any further errors that they may contain. Code generation is
completely suppressed for the remainder of the compilation, however, and no
class files will be generated, even for compilation units that contain no
errors. The old compiler in 1.2 would generate class files for any
compilation units that did not contain errors. This resulted in less
redundant work during the repeated compilations required to identify and
correct all errors in a large program containing many files with errors. We
hope to improve this behavior in the future. The new compiler is
substantially faster overall, however, which should tend to offset this
somewhat.
The reserved stack size for the Java application launcher on
Win32 platforms (java.exe) has been decreased from 1 MB to 256 KB.
This reduction of reserved stack size enables four times more threads than
previously can exist simultaneously during runtime before getting an
out-of-memory error.
The idltojava compiler has been replaced with the
new idlj compiler.
The Javadoc tool recognizes the new @docRoot tag, and
a new doclet for generating output in MIF format is available.
Several important Javadoc bugs are also fixed in Javadoc 1.3. See
What's New in Javadoc 1.3
for details.
The Jar tool now provides for the
indexing of Jar
files so that Jar-file contents can be accessed quickly and
easily. The new functionality is invoked with the Jar tool's
new -i option. See the Jar tool reference pages for
details [ Win32 | Solaris ].
The jarsigner and keytool utilities have a new
-provider option that can be used to specify the name of cryptographic
service provider's master
class file when the service provider is not listed in the security
properties file. See the reference pages for
jarsigner [Win32 | Solaris] and keytool
[Win32 | Solaris]. Jarsigner can now verify Netscape-signed
Jar files.
The rmic tool (the Java RMI stub compiler) supports several
new options:
The -bootclasspath option overrides the location of
bootstrap class files.
The -extdirs option overrides the location of installed
extensions.
The -idl option creates IDL.
The -iiop option creates stubs for IIOP.
The -sourcepath option specifies where to find user source files.
rmic now assumes the equivalent of '-d .' for the
destination directory if the -d option isn't used.
See the rmic reference pages for details [ Win32 | Solaris ].
The rmid tool (the Java RMI Activation Daemon) now requires a security policy file, by default. For complete details, please refer to the
rmid reference pages [ Win32 | Solaris ].
Version 1.3 of the Java 2 SDK contains the new Java 2 Client Virtual
Machine with Java HotSpotTM technology as the default virtual machine
for running applications and applets. The virtual machine implementation
from previous versions of the SDK (the Classic VM) is still
included with the Java 2 SDK for Win32 platforms. It is not included
with the Java 2 Runtime Environment nor with the Java 2 SDK for the
Solaris operating environment. On the Win32 SDK, the classic VM can be
invoked by using the -classic
option when launching applications and applets, as in these examples:
If used, the -classic option must be the first option
appearing in the command. The -classic option also can be used
to invoke the Classic VM when using other SDK tools.
The version-related options of the Java application
launcher have been modified in this release. The
-version option provides output in the following format:
java version "<java.version>"
<java.runtime.name> (build <java.runtime.version>)
<java.vm.name> (build <java.vm.version>, <java.vm.info>)
The parts in angular brackets, such as <java.version>, are
values of the indicated system properties. New option
-showversion is similar to -version, except that
it continues after displaying the version information so that it
can be used when launching an application.
java -showversion MyApp
The javaw application launcher normally launches an
application on Win32 platforms without displaying a console window as does the
java application launcher. The javaw launcher has been
modified so that it will now display a window with error messages
in the event that an application fails to launch. Previously,
javaw would not display an error dialog box when an application
failed to launch which made it difficult to determine the cause of
the problem.