home *** CD-ROM | disk | FTP | other *** search
Text File | 1998-03-20 | 41.7 KB | 1,038 lines |
- README
-
- Java(tm) Development Kit
- JDK(tm) 1.2 Beta 3 Software
-
- -----------------------------------------------------------------------
- CONTENTS
-
- Introduction
- Summary of Significant Known Bugs
- Coming Feature Enhancements
- Version Compatibility
- What the JDK Software Contains
- Reporting Bugs
- Where to Find More Information
- Just-in-Time (JIT) Compilers
- Threads Packages for the Solaris JDK Software
- - Native Threads versus Green Threads
- - System Requirements for Native Threads
- - Overriding the Default Threads Package
- Deploying Java Applications
-
-
- -----------------------------------------------------------------------
- Introduction
- -----------------------------------------------------------------------
- Thank you for downloading this beta release of version 1.2 of the Java
- Development Kit. The Java Development Kit is a development environment
- for writing applets and applications that conform to the API of version
- 1.2 of the Java platform. The JDK 1.2 software includes improvements in
- performance and functionality over version 1.1.x.
-
- The primary purposes of this beta release are:
-
- - To let you try the new APIs and features with your applications
- and applets so you can give us feedback on the design and
- implementation.
-
- - To enable you to report bugs that you encounter. See "Reporting
- Bugs" below for information on submitting bug reports.
-
-
- This release of the JDK software is available for Windows 95/NT,
- Solaris SPARC, and Solaris x86. Its compiler and other tools are run
- from the command line and have no GUI interface.
-
- DISCLAIMER - This beta release is known to contain bugs. Do not
- rely on this software for production-quality applications or for
- mission-critical applications. Portions of the APIs for some new
- features in this release have not been finalized, and APIs may
- change in response to feedback. Some features are not fully
- implemented in this release. See "Summary of Incomplete Features
- and Significant Known Bugs" below.
-
- The implementations of the new features in this beta release are
- still being tuned for performance. The software contains
- debugging and analysis hooks that degrade performance. These will
- be removed in the final release.
-
-
- The Java platform version 1.2 API offers new functionality and
- enhancements in the following areas:
-
- - Security Enhancements
- - Policy-based Access Control
- - Certificate Interfaces
- - x.509 v3 Implementation
- - The keytool, jar, jarsigner, and policytool tools
- - Java Foundation Classes (JFC) (tm) software
- - Java 2D
- - User-Interface Components (Swing Package)
- - Accessibility
- - Drag & Drop
- - Application Services
- - JavaBeans(tm) Enhancements
- - Interaction with Applet Semantics
- - Better Design-Time Support
- - JavaBeans Runtime Containment and Services Protocol
- - Collections
- - Version Identification
- - RMI Enhancements
- - Remote Object Activation
- - Custom Socket Types
- - Minor API Enhancements
- - Serialization Enhancements
- - Persistent Field API
- - Reference Objects (including weak references)
- - Audio Enhancements
- - Java Sound(tm) software
- - getNewAudioClip Method
- - Performance Enhancements
- - Solaris Native Thread Support
- - Memory Compression for Loaded Classes
- - Faster Memory Allocation and Garbage Collection
- - Monitor Speedups
- - Native Library JNI Port
- - JIT Compilers
- - Extensions Framework
- - Java IDL
- - Input Method Framework
- - JAR Enhancements
- - JNI Enhancements
- - Reflection Enhancements
- - JDBC(tm)-ODBC Bridge Enhancements
- - Servlet (a standard extension)
- - Javadoc Doclets (a tool)
- - Java Virtual Machine Debug Interface
-
- In this release, some of the new features are not fully implemented or
- have known bugs. See the following section for details.
-
-
- -----------------------------------------------------------------------
- Summary of Significant Known Bugs
- -----------------------------------------------------------------------
- See the disclaimer in the Introduction for comments applicable to all
- new features.
-
- ____________________
- Extensions Framework
-
- This release includes a preliminary implementation of the Java
- Extensions Framework. However, extensions are not enabled by default.
- To launch a program with extensions, use the java launcher tool with
- the -new option:
-
- java -new MyClass
- java -new -jar foo.jar
-
- The jre launcher may also be used with the -new option to run
- programs that use extensions:
-
- jre -new MyClass
- jre -new -jar foo.jar
-
- A later release will add full extensions support, and the -new option
- will be removed.
-
- This release does not support applets that use extensions.
-
- For more information on using the Extensions Framework, see
- http://java/sun.com/products/jdk/1.2/docs/guide/extensions
-
-
- ___________________________________
- Parsing Bug and HotJava(tm) Browser
-
- The HotJava browser may crash when run on Windows 95 using this
- release as a Java runtime environment. (Bug 4098718.) This is a
- result of a bug in the code for parsing security configuration files.
- This bug is not in the HotJava software, and will not appear when the
- browser uses its bundled Java runtime environment (JDK_HOME is not
- set). A temporary workaround is to remove or rename the "groups" file
- in the .hotjava\security1.1 directory off the HotJava browser
- installation directory. If, for example, the HotJava browser is
- installed in c:\hotjava1.1, you should remove or rename
-
- c:\hotjava1.1\.hotjava\security1.1\groups
-
- This bug will be fixed in the next release.
-
- ________
- JDBC(tm)
-
- This release includes a preliminary version of the JDBC 2.0 API. It is
- possible that part of this API, the java.sql package, will have further
- changes before the JDK 1.2 API is frozen.
-
- _________________________
- Windows Registry Settings
-
- When you install the Java Development Kit, the installer will add
- a registry key::
-
- \\HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit\1.2
-
- It will also change the value of the CurrentVersion setting in
- the
-
- \\HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit
-
- registry to 1.2.
-
- If you have previously installed JDK 1.1.x software on your machine,
- your registry will also contain the following branch:
-
- \\HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit\1.1
-
- Uninstalling the Windows version of JDK 1.2 software will erase the
- registry entries for version 1.1.x as well as those for version 1.2.
- If you uninstall the JDK 1.2 Beta 3 software, you should first save
- the settings in the 1.1 branch of the registry by using regedit. (To
- run regedit, go into the Start menu, select Run, type regedit in the
- text field, and type return. You can also run regedit by issuing the
- regedit command from a DOS prompt.)
-
- BEFORE UNINSTALLING THE JDK SOFTWARE:
-
- Select the 1.1 registry key (\\HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java
- Development Kit\1.1), and export it to a file (jdk1.1registry, for
- example). You can do this by using the "Export registry file" menu item
- in regedit's "Registry" menu.
-
- AFTER UNINSTALLING THE JDK SOFTWARE:
-
- - Import the 1.1 registry file (jdk1.1registry) that you exported
- before the uninstall. You can do this by using the "Import registry
- file" menu item in regedit's "Registry" menu.
-
- - In the Java Development Kit registry key
-
- \\HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit
-
- select the "CurrentVersion" string value, and modify it to "1.1". You
- can do this by using the "modify" menu item in regedit's "Edit" menu.
-
- This problem will be corrected in the next beta release.
-
- _________________________________________
- User Interface Components (Swing Package)
-
- This version of the Java Development Kit includes release 1.0 of the
- Swing user interface components.
-
- Performance tuning of Swing is continuing throughout the Beta cycle
- of the Java Development Kit.
-
- To get the latest information on Swing, and download any
- new versions of the Swing libraries released subsequent to this Java
- Development Kit, see the Swing Connection at
-
- http://java.sun.com/products/jfc/swingdoc-current/
-
-
- ___
- AWT
-
- When a TextField is added to a Dialog, the background and foreground
- colors both default to black. (Bug 4118918)
-
- Mouse event objects are sometimes constructed with incorrect button
- modifiers. On Solaris, MousePressed never has BUTTON1_MASK set, even if
- Button 1 is down. On Windows, MouseDragged never has BUTTON1_MASK set,
- even if Button 1 is down. (Bugs 4117489, 4117523, 4117525.)
-
- Due to synchonization problems, crashes can sometimes occur if multiple
- AWT threads attempt to access the same List component. This bug
- exists on both Solaris and Windows platforms. (Bug 4116233)
-
- On Windows 95, application crashes can sometimes occur when a TextField
- instance is created that contains more than 255 bytes of text. The
- problem can occur, for example, when setText() is called before calling
- pack() or setVisible(). (Bug 4118571)
-
-
- ___________________
- Drag and Drop (JFC)
-
- Known problems with using Drag and Drop:
- - There is a four second startup overhead associated with the
- first drag on Windows platforms.
- - The drag and drop subsystem gets a security exception when
- run under java -usepolicy. The DropTarget class gets an
- ExceptionInInitializerError. (Bug 4114251)
- - Drag and Drop doesn't work with Swing components on Solaris
- due to a bug in the Swing event mechanism. (Bug 4087309)
- - Drag and Drop text from native (CDE) to the Java virtual
- machine crashes the virtual machine and its shell terminal
- on Solaris. This problem is not present on Windows
- environments. (Bug 4118496)
- - Drag and Drop text from native text controls to the Java virtual
- machine fails on Windows 95. (Bug 4119256.)
-
-
- _____________
- Java 2D (JFC)
-
- In this implementation of Java 2D, text drawn to an off-screen buffer
- may not look the same as text drawn directly to the screen when no 2D
- features are used. The off-screen rendering uses a different rasterizer
- and may use different fonts. This may also cause metrics to be different
- for on-screen vs. off-screen rendering. To force Toolkit.getFontMetrics()
- to return off-screen metrics, you can use the following property:
-
- java -Djava2d.offfm=true <app>
-
- Metrics problems will also cause the I-beam caret to appear in the
- wrong place in Swing, and Buttons/Tabs to have "..." in place of the
- full button/tab name.
-
- Relevant text bugs: 4086564, 4100565, 4113796, 4116576
-
- On Windows platforms, Java 2D uses the DirectDraw library, ddraw.dll,
- if available. If the JDK software crashes on startup, remove or rename
- all copies of ddraw.dll on your system, reboot and try running the JDK
- software again. If this fixes the problem, it indicates that your
- ddraw.dll did not match your video card and you may want to download a
- new ddraw.dll from the Microsoft DirectX web site
- http://www.microsoft.com/directx/default.asp choosing "DirectX". If
- ddraw.dll is not available, Java 2D will use GDI calls, but using Direct
- Draw will boost performance.
-
- In this release, java.awt.Font does not support some non-8859-1
- character sets (bug 4100565). This causes a problem, for example, on
- Japanese Windows 95 where some fonts are not parsed correctly. The
- TrueType Bitstream Cyberbit font, cyberbit.ttf, can be used as a
- work-around for international font support. This font can be
- downloaded from
-
- http://www.bitstream.com/cyberbit/ftpcyber.htm
-
- You can set the JAVA_FONTS environment variable to point to
- cyberbit.ttf or to any other non-system fonts:
-
- setenv JAVA_FONTS <font dir> (on Solaris)
- set JAVA_FONTS=<font dir> (on Windows)
-
- where <font dir> is the directory in which the fonts reside.
-
- Use of fonts with the Solaris x86 JDK software results in a
- segmentation violation. (Bug 4114152)
-
- Lighweight text controls are sometimes slow to respond to keyboard
- input. The graphical complexity of the top-level container appears to
- be a contributing factor. This bug will be fixed in the next release.
- (Bug 4114384.)
-
- ______________________
- Input Method Framework
-
- To use input methods through the Internet-Intranet Input Method
- Protocol (IIIMP), the extension file iiimp.jar needs to be added to
- the class path. This file is located in the lib/ext directory of
- your JDK installation. In the next release, this extension will be
- loaded through the extension mechanism. (Bug 4118842)
-
- In this release, text highlights are not drawn while the text is being
- composed. (Bug 4108510)
-
-
- ________________
- JAR Enhancements
-
- The improvements to the command-line jar tool for creating and
- updating signed JAR files have not been implemented in this release.
-
- ______________________________
- Possible Problems with Winsock
-
- When installing the JDK software on a Windows 95 system, the installer
- will check to see if Winsock 2 is installed on the system. Winsock 2 is
- the most recent version of the networking layer for Windows and is
- published by Microsoft. If Winsock 2 isn't installed, the installer
- will offer to install it.
-
- Occasionally, some Windows configurations seem to be adversely
- affected after installing Winsock 2. Problems we have noted include
- networking programs (such as news and mail readers, and browsers)
- that stop working or crash. (Bugs 4097887 and 4105761)
-
- If this happens on your system, you can remove Winsock 2 using this
- procedure:
-
- 1. go to C:\Windows\WS2BAKUP directory
- 2. run the WS2BAKUP.BAT script
- 3. reboot your machine
-
- The JDK software will continue to work properly without Winsock 2 by
- using Winsock 1.1. However, in applications that use the JDK software
- and involve heavily multi-tasked network I/O, TCP connections may not
- get closed properly, causing them to get reset unexpectedly. Most other
- applications will be unaffected. We recommend that you upgrade to
- Winsock 2 as soon as possible.
-
- ____________
- Javadoc Tool
-
- When operating on packages, the javadoc tool requires additional
- memory and will taker longer to complete a run than when operating
- on individual .java files (bug 4110216). If you run into an
- out-of-memory error because of this problem (or for any other
- reason), you can increase the memory available to javadoc by using
- the -J-ms<x> and -J-mx<x> options. See the javadoc documentation
- for more information on these options.
-
- The -nodeprecatedlist and -nohelp javadoc options, listed in both
- the command-line help and in the javadoc documentation, do not work
- in this beta release. They will be available in a future release.
-
- ____________
- JIT Compiler
-
- The JIT compilers are off by default in this release for both the
- Windows and Solaris platforms. Some bugs may be present only when
- the JIT compilers are turned on. For example, on the Solaris
- platform, the Animator demo applets does not run with the JIT compiler
- turned on (bug 4092493).
-
- _____________________
- Locale Bug on Solaris
-
- A bug in the class java.util.Locale can cause errors when run on
- Solaris. This problem only occurs when a program is run under a Solaris
- locale that does not include an ISO 3166 country name. Under these
- circumstances, the Solaris locale is mapped to a Java platform language
- locale, instead of a country locale. When this happens, the
- getISO3CountryCode() and getDisplayCountry() methods return incorrect
- values. This bug will be fixed in the next release. (Bug 4118731.)
-
- As a workaround, you can directly set the default locale through the
- user.region property. For example, this command sets the default locale
- to "ja_JP":
-
- java -Duser.region=ja_JP MyClass
-
- _________________
- Peer Bug on Win32
-
- Some text controls, such as java.awt.TextArea, do not always handle
- large text strings correctly on Win32 systems. If, for example, you
- pass a 64K string to setText(), the control may display nothing. (Bug
- 4080391.)
-
- This is not a bug in the JDK class libraries. The actual bug is in the
- "peer" control, the native platform control that actually appears on
- the screen. Win32 screen controls can only handle a limited amount of
- text. In theory, the limit is 32K. In practice, the limit may be as
- little as 20K or as much as 60K.
-
- If you need text controls that can handle large text strings on Win32,
- use lightweight controls, such as java.awt.swing.JTextArea. Lightweight
- controls do not use peers, and can display any string that will fit in
- memory.
-
- -----------------------------------------------------------------------
- Coming Feature Enhancements
- -----------------------------------------------------------------------
- Improvements to the new features of the 1.2 platform will be
- implemented throughout the beta release cycle. The JDK software will
- continue to be tuned for performance and stability, and enhancements to
- the functionality of some new features will be added prior to final
- shipment. The following list contains some of the feature improvements
- that are expected in future releases of the 1.2 platform.
-
- _____________
- Drag and Drop
-
- The Beta 4 release will introduce two enhancements to Drag and Drop:
-
- 1) support for file Drag and Drop
-
- This feature will allow the Java platform to more easily
- Drag and Drop lists of files to/from platform native
- applications.
-
- It defines a MIME "Content-Type" and data format
- (DataFlavor) to enable easier transfers of lists of files
- between applications.
-
- 2) support for platform/device recognition of user initiating
- Drag-and-Drop gestures
-
- The gesture that a user uses in order to initiate a
- Drag-and-Drop operation varies from platform to platfrom,
- and also can differ in the device used to make the gesture
- itself.
-
- Using a DragGestureRecognizer, the developer can isolate
- their Drag-and-Drop code from these platform/device-specific
- dependencies.
-
-
- _____
- Swing
-
- Swing JText components will be enhanced to support "Complex Output"
- (aka "BiDi"). This means specifically that JText will provide for
- automatic reordering, shaping and placement of glyphs from the
- Unicode scripts that require such processing, like Hebrew, Arabic
- and Thai. For example: Hebrew and Arabic strings are ordered right-
- to-left, except for numerals; Arabic consonants take on different
- shapes, depending on their adjoining context within words; Thai
- vowel and tone diacritical marks have to be stacked properly when
- more than one mark is used with a base consonant.
-
-
- ______________________
- Input Method Framework
-
- The Internet-Intranet Input Method Protocol (IIIMP) extension will
- be available for use by applications in the Beta 4 release. The
- next beta release will also include these enhancements:
-
- - text highlights will be drawn while text is being composed.
- - expanded list of virtual key codes in java.awt.event.KeyEvent
- (RFE 4116859)
-
-
- _______
- Java 2D
-
- Enhancements to the printing API will be added in Beta 4.
-
-
- ___________________
- Extension Framework
-
- The Beta 4 release will add full extensions support. Extensions will be
- enabled by default, and the interpreter's -new option will be removed.
- The java and jre tools will be merged in Beta 4.
-
-
- ________________
- JAR Enhancements
-
- Beta 4 will make improvements to the jar tool for creating and
- updating signed JAR files and for adding and removing files from
- JAR files.
-
-
- ____________________________
- Just-in-time (JIT) Compilers
-
- The JIT compilers in the Windows and Solaris JDK software will be
- on by default in Beta 4.
-
-
- -----------------------------------------------------------------------
- Version Compatibility
- -----------------------------------------------------------------------
- In general, any applet or application that ran in version 1.0.x or
- version 1.1.x should run unmodified with this version 1.2 of the Java
- platform. In a few cases, we have had to break version compatibility to
- close potential security holes or fix implementation or design bugs.
- All such cases are documented on the compatibility page at
-
- http://java.sun.com/products/jdk/1.2/compatibility.html
-
- We regard any version incompatibility not listed on the compatibility
- page as a serious bug which we will fix, or, if that is not feasible,
- document on the compatibility page.
-
- Please report all version compatibility bugs (see the section
- Reporting Bugs below). Upwards version compatibility is critically
- important to us, and is a cornerstone of the promise: Write Once,
- Run Anywhere(tm).
-
- Of course, applets that depend on any new APIs in this platform will not
- work on browsers that support only earlier versions (1.0.x and 1.1.x)
- of the platform. However, in general, applets relying only on earlier
- APIs but compiled with the compiler in this JDK will run on earlier
- versions of browsers. This "downwards" version compatibility has not
- been extensively tested and cannot be guaranteed.
-
-
- -----------------------------------------------------------------------
- What the JDK Software Contains
- -----------------------------------------------------------------------
- The executables are located in the bin directory, the class libraries
- are in the lib directory, and the demos are in the demo directory.
-
- JAVA RUNTIME ----------------------------------------------------------
-
- - Java Core Classes (classes.zip)
- DO NOT UNZIP THIS FILE! It must remain zipped for the
- compiler and interpreter to access the class files
- within it properly. This file contains all of the
- the compiled .class files for the platform.
-
- - Libraries and Properties Files
- Various supplementary files for use by the runtime
- environment.
-
-
- SOURCE FILES -----------------------------------------------------
-
- - Source Files for Public Classes
- (src.zip file or src directory)
- This is the set of source files used to create the
- classes included in the Java Core Classes classes.zip
- file (above). These source files are provided for
- information purposes only, to help developers learn
- and use the Java programming language. They do not
- include the private java.* classes or the sun.* classes,
- and therefore cannot be compiled into a complete
- classes.zip file.
-
- Do not modify these classes; instead, create subclasses
- and override where you need to. These classes are
- documented in the API Reference documentation, which is
- generated by the JDK software's javadoc tool.
-
- How this is installed depends on the platform:
-
- - On Windows, these are automatically unzipped for you
- during installation.
-
- - On Solaris, you must unzip the src.zip file yourself.
-
- TOOLS ------------------------------------------------------------
-
- - Java Interpreter (java)
- The launcher for the Java virtual machine that executes
- Java bytecodes. It runs programs written in the Java
- programming language and compiled to bytecodes.
-
- - Java Runtime Interpreter (jre)
- Similar to the Java Interpreter (java), but intended for
- end users who do not require all the development-related
- options available with the java tool.
-
- - Java Compiler (javac)
- Compiles programs written in the Java programming language
- into bytecodes.
-
- - Java AppletViewer (appletviewer)
- Used for testing and running applets.
-
- - Java Debugger (jdb)
- Helps you find bugs in programs written in the Java
- programming language.
-
- - Class File Disassembler (javap)
- Disassembles compiled files and prints out a
- representation of the bytecodes.
-
- - Java Documentation Generator (javadoc)
- Parses the declarations and documentation comments in
- a set of source files and produces a set of HTML pages
- describing the public and protected classes, interfaces,
- constructors, methods, and fields. Also produces
- a class hierarchy and an index of all members. Javadoc
- now produces output with a different look and feel than
- does the JDK 1.1.x javadoc tool.
-
- - C Header and Stub File Generator (javah)
- For attaching native methods to code written in the
- Java programming language.
-
- - Java Archive Tool (jar)
- Combines many class files and other resources
- into a single Java ARchive (JAR) file.
-
- - JAR Signing and Verification Tool (jarsigner)
- Generates signatures for Java ARchive (JAR) files, and
- verifies the signatures of signed JAR files.
-
- - Key and Certificate Management Tool (keytool)
- Manages a keystore (database) of private keys and their
- associated X.509 certificate chains authenticating the
- corresponding public keys. Also manages certificates from
- trusted entities.
-
- - Policy Tool (policytool)
- Used to create and modify the external policy configuration
- files that define your installation's Java security policy.
-
- - Native-To-ASCII Converter (native2ascii)
- Converts a native encoding file to an ascii
- file that includes the \udddd Unicode notation.
-
- - Java RMI Stub Converter (rmic)
- Generates objects from the names of compiled Java classes
- that contain remote object implementations.
-
- - Java RMI Activation System Daemon (rmid)
- Starts the activation system daemon so that objects can
- be registered and activated in a Java virtual machine.
-
- - Java Remote Object Registry (rmiregistry)
- Creates and starts a remote object registry on the
- specified port of the current host.
-
- - Serial Version Command (serialver)
- Returns the serialVersionUID for one or more classes
- in a form suitable for copying into an evolving class.
-
- - Java IDL Name Server (tnameserv)
- Starts the Java IDL name server on the specified port.
-
- - Java Servlet Runner (servletrunner)
- Used for running and testing servlets.
-
-
- JAVA DOCUMENTATION AND DEMOS ------------------------------------------
-
- - Applet Demos (demo/applets and demo/jfc directories)
- The demo/applets directory contains applets that are useful
- as a "sanity" check to ensure that the JDK software is
- properly installed and running correctly. Demos of Swing
- set functionality are in the demo/jfc directory. Each Swing
- set demo has an associated README.txt file that contains
- information (such as recommended classpath settings) that
- will help you run the demos.
-
- - README
- This file you are currently reading.
-
- - CHANGES
- Lists new features added since version 1.1, and important
- changes since the previous release of this platform.
-
- - COPYRIGHT
- Copyright notice for the JDK software.
-
- - LICENSE
- License agreement for the JDK software.
-
- NOTE: The JDK software does NOT include a Web browser. To obtain the
- HotJava(tm) Browser, see the HotJava Browser web page:
-
- http://java.sun.com/products/hotjava/
-
-
- -----------------------------------------------------------------------
- Reporting Bugs
- -----------------------------------------------------------------------
- To report bugs or feature requests, go to this web page:
-
- http://java.sun.com/cgi-bin/bugreport.cgi
-
- Before submitting a bug report, you should check the Bug Parade web site
- at
-
- http://java.sun.com/jdc/bugParade
-
- to see if your bug is a duplicate of a known problem.
-
- When submitting a bug, be sure you include the version number of
- the JDK software you are running. You can get the version number of
- the JDK software by executing:
-
- java -version
-
-
- -----------------------------------------------------------------------
- Where to Find More Information
- -----------------------------------------------------------------------
- This README file and the accompanying LICENSE file, CHANGES file,
- COPYRIGHT file, demo directory, and source code (src.zip) are the
- only documentation included in the JDK software bundle.
-
- You can find the full JDK documentation online at
- http://java.sun.com/products/jdk/1.2/docs
-
- You can also download a complete set of JDK documentation from the Java
- Developer Connection(sm) (JDC) web site:
-
- http://java.sun.com/jdc/earlyAccess
-
- The Java Developer Connection also has sites for technical support,
- discussion forums and on-line training. There is no charge to join
- JDC; once you register, you have immediate access to the full site.
-
-
- -----------------------------------------------------------------------
- Just-in-Time (JIT) Compilers
- -----------------------------------------------------------------------
- This release includes JITs for Win32 and Solaris. A Just-In-Time
- bytecode compiler, or JIT, improves program performance by translating
- bytecodes into native code. In this release, the JIT is disabled by
- default. To enable the JIT, assign the JIT name to the JAVA_COMPILER
- environment variable or the java.compiler property.
-
- On Windows the JIT name is symcjit. Either of the following command
- sequences runs an application under the JIT:
-
- java -Djava.compiler=symcjit MyClass
-
- set JAVA_COMPILER=symcjit
- java MyClass
-
- On Solaris, the JIT name is sunwjit. Either of the following command
- sequences runs an application under the JIT:
-
- java -Djava.compiler=sunwjit MyClass
-
- setenv JAVA_COMPILER sunwjit
- java MyClass
-
- For more information, see:
-
- http://java.sun.com/products/jdk/1.2/docs/#tools
-
- The Win32 version of the JDK includes the Symantec JIT,
- Copyright ⌐ 1996-1998 by Symantec Corporation. All rights reserved.
-
- -----------------------------------------------------------------------
- Threads Packages for the Solaris JDK Software
- -----------------------------------------------------------------------
- You have a choice of two threads packages on the Solaris JDK software.
- One threads package enables the Java virtual machine (JVM) to use
- Solaris native threads and the second threads package (called "green
- threads") does not. By default, the JDK software uses the green threads
- package. Some comparisons of the two threads packages are provided in
- the section "Native Threads versus Green Threads" below.
-
- IF YOU WANT TO USE THE GREEN THREADS PACKAGE: Green threads is the
- default threads package for this JDK software. You will be using the
- green threads package unless you specifically override it. See the
- section "Overriding the Default Threads Package" below.
-
- IF YOU WANT TO USE THE SOLARIS NATIVE THREADS PACKAGE: To use the
- native threads packages you will have to override the default green
- threads package. See the section "Overriding the Default Threads
- Package" below. Only specific versions of Solaris support native
- threads. See the section "System Requirements for Native Threads"
- below.
-
- IF YOU DON'T CARE WHICH THREADS PACKAGE YOU USE: If you don't run on
- a multi-processor environment or for any reason don't care which
- threads package you use, you can simply use the default green threads
- package.
-
-
- Native Threads versus Green Threads -----------------------------------
-
- Among the benefits of using the native threads JVM are:
-
- - If you run code in a multi-processor environment, the Solaris
- kernel can schedule even threads at the level of the Java
- programming language on multiple processors for increased
- performance. By contrast, green threads exist only at the
- user-level and are not mapped to multiple kernel threads by the
- operating system. Performance enhancement from multiple
- processors cannot be realized using green threads.
-
- - The native threads JVM can call into C libraries that use
- Solaris native threads. Such libraries cannot be used with green
- threads.
-
- - When using the native threads, the JVM can avoid some
- inefficient remapping of I/O system calls that are necessary
- when green threads are used.
-
- In some instances, it may be advisable to use the green threads
- package. Native code that is not multithread safe (MT-safe) may not
- work correctly with native threads, and may not work correctly with
- green threads either. In general, if you aren't using the native
- Solaris threads mechanisms directly, then you need to compile your
- native code with the option -D_REENTRANT to make sure that they work
- correctly in a threaded environment. You may also need to use
- reentrant versions of certain Solaris interfaces.
-
- Specific information concerning multithreaded programming on Solaris
- may be found in the Multithreaded Programming Guide of the Solaris
- Software Developer AnswerBook. This information is also available
- at http://docs.sun.com. Navigate to the Tools link under the
- Programming heading and go to the link Solaris 2.6 Software
- Developer Collection Vol. 1.
-
- It is possible that thread-synchronization bugs in code that you run
- may be hidden when using green threads, but may manifest themselves
- when run under native threads. You should consider this possibility if
- your code runs differently under the two threads packages.
-
-
- System Requirements for Native Threads -------------------------------
-
- To use Solaris Native Threads, you need Solaris 2.5.1 or Solaris 2.6.
- Earlier versions of Solaris, including Solaris 2.5, are not supported.
-
- To support Native Threads, Solaris 2.5.1 needs two patches which
- resolve thread synchronization problems. On Solaris-SPARC, the
- required patches are 103566-08 and 103640-08. On Solaris-x86, the
- required patches are 104241-01 and 103641-08. The last two digits of
- the patch numbers indicate the patch version; you can use the
- indicated patch versions or later versions of the same patches.
-
- To determine which patches are installed, use the shell command
- "showrev":
-
- % showrev -p
-
- You can obtain patches from your warranty provider, from SunService
- (if you have a SunSpectrum contract) or from the SunSolve web site.
- To obtain these patches from the SunSolve web site:
-
- 1. Access the web site at http://sunsolve.sun.com/.
-
- 2. Choose the "Public Patches" link.
-
- 3. Download either the Solaris 2.5.1 Recommended Patch Cluster or
- the Solaris 2.5.1 x86_Recommended Patch Cluster.
-
- 4. Follow the instructions in the Patch Cluster README, available
- from the "Public Patches" page.
-
-
- Overriding the Default Thread Packages --------------------------------
-
- ---------------- The THREADS_FLAG Environment Variable ----------------
-
- All the tools in the Solaris JDK software use green threads by default.
- To specify that native threads should be used instead, set the
- THREADS_FLAG environment variable to the value native:
-
- % setenv THREADS_FLAG native
-
- You can revert to use of green threads by setting THREADS_FLAG to
- the value green:
-
- % setenv THREADS_FLAG green
-
-
- ------------ The -native and -green Convenience Options ---------------
-
- When using any of the JDK tools, you can specify native threads or
- green threads by using the -native and -green convenience options. If
- you use -native or -green, they must be the first option specified on
- the command line. The convenience options can be used as in these
- examples:
-
- % java -native mypkg.MyClass
- % appletviewer -green foo.html
-
- Using a convenience option overrides the setting of the THREADS_FLAG
- environment variable.
-
-
-
- =======================================================================
- DEPLOYING JAVA APPLICATIONS
- =======================================================================
-
- A Java application, unlike a Java applet, cannot rely on a web browser
- for installation and runtime services. When you deploy a Java
- application, your software bundle will probably consist of the
- following parts:
-
- * Your own class, resource, and data files.
-
- * A runtime environment.
-
- * An installation procedure or program.
-
- The first item, you already have, of course. The remainder of this
- section covers the other two items.
-
- -----------------------------------------------------------------------
- RUNTIME ENVIRONMENT
- -----------------------------------------------------------------------
- To run your application, a user needs a Java virtual machine, the Java
- platform core classes, and various support programs and files. This
- collection of software is known as a runtime environment.
-
- The JDK software serves as a runtime environment. However, you probably
- can't assume your users have the JDK software installed, and your JDK
- software license doesn't allow you to redistribute JDK software files.
-
- JavaSoft provides a free, redistributable runtime environment called
- the Java Runtime Environment. Versions of this are are available for
- all platforms that run the JDK software. The Java Runtime Environment
- Version 1.2 Beta 3 is available for download at:
-
- http://developer.javasoft.com/developer/earlyAccess/jdk12/
-
- The Win32 versions comes with a built-in installation program suitable
- for end-users. Solaris versions require the developer to provide
- installation support.
-
- The Java Runtime Environment for Win32 is available both with and
- without international support. The non-international version is much
- smaller, but is suitable only for English-speaking users.
-
- JavaSoft is not the only supplier of runtime software for Java
- programs. If you use a third-party runtime, you should make sure it is
- fully compatible with the Java Runtime Environment.
-
- For information on third-party runtime environments, see:
-
- http://java.sun.com/cgi-bin/java-ports.cgi
-
-
- -----------------------------------------------------------------------
- INSTALLATION
- -----------------------------------------------------------------------
- The final step in the deployment process occurs when the software is
- installed on individual user system. Installation consists of copying
- software onto the user's system, then configuring the user's system to
- support that software.
-
- This step includes installing and configuring the runtime environment.
- If you use the Java Runtime Environment, you must make sure that your
- installation procedure never overwrites an existing installation,
- unless the existing Java Runtime Environment is an older version.
-
- The Win32 version of the Java Runtime Environment is distributed as a
- self-installing executable. A simple way to redistribute the Java
- Runtime Environment is to include this executable in your software
- bundle. You can then have your installation program run the executable,
- or simply instruct the user to install the Java Runtime Environment
- before installing the rest of your bundle.
-
- The Win32 installation program records program information in the
- Windows Registry. This registry information includes the software
- version, which you should compare with the Java Runtime Environment
- version in your software bundle. For more information, refer to the the
- Java Runtime Environment Notes for Developers at:
-
- http://java.sun.com/products/jdk/1.2/runtime.html
-
- A more sophisticated approach is to install the Java Runtime
- Environment on your own system, then copy the files you need into your
- own installation set. If you choose this approach, you must include all
- files described as "required" in the Java Runtime Environment README.
- The Java Runtime Environment software can only be redistributed if all
- "required" files are included. See the LICENSE file for specifics.
-
- If you use this approach, do not try to emulate the installation steps
- performed by the Java Runtime Environment installer. You might "break"
- an existing Java Runtime Environment installation by missing a new or
- undocumented installation step. Instead, you should include the Java
- Runtime Environment files in your own application directory. In effect,
- your application has its own "private" copy of the Java Runtime
- Environment.
-
- If your application uses the networking classes, it may not run
- reliably under Winsock 1.1. (See "Possible Problems with Winsock,"
- above.) If your networking application must support Windows 95, which
- comes with Winsock 1.1, you will want to include a Winsock 2.0 install
- in your installation procedure. (Windows NT 4.0 and Windows 98 come
- with Winsock 2.0.) To provide Winsock 2.0, you need the Microsoft
- Windows Sockets 2.0 Software Development Kit. This free software can be
- downloaded from the following addresses:
-
- http://www.microsoft.com/win32dev/netwrk/winsock2/ws295sdk.html
- http://www.microsoft.com/windows95/info/ws2.htm
- ftp://ftp.microsoft.com/bussys/WinSock/winsock2/
-
- ======================================================================
- The Java Development Kit is a product of Sun Microsystems(tm), Inc.
- JavaSoft(tm) is the operating company of Sun that develops the JDK.
-
- Copyright ⌐ 1997, 1998 Sun Microsystems, Inc.
- 901 San Antonio Road, Palo Alto, California 94303-4900 USA.
- All rights reserved.
-