home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgLangD.iso / VCAFE.3.0A / Main.bin / README < prev    next >
Text File  |  1998-10-29  |  55KB  |  1,322 lines

  1.                              README
  2.  
  3.                     Java(tm) Development Kit
  4.                     JDK(tm) 1.1.7A Software
  5.           
  6.  
  7.     Updates to these release notes will be posted on the Java 
  8.     Software website:
  9.  
  10.         http://java.sun.com/products/jdk/1.1/README-update.html
  11.  
  12. -----------------------------------------------------------------------
  13. CONTENTS
  14.  
  15.   Overview of the Java Development Kit
  16.     - Introduction
  17.     - Purpose
  18.     - Version Compatibility
  19.     - Bug Fixes
  20.     - What the JDK Software Contains
  21.     - Where to Find More Information
  22.     - Submitting Comments
  23.     - Reporting Bugs and Requesting Features
  24.     - JavaBeans(tm) and the Beans Development Kit
  25.  
  26.   Installing and Running the JDK Software
  27.     - Installation Notes
  28.     - Windows
  29.       - Running JDK Tools in Microsoft Windows
  30.       - Microsoft Windows PATH and CLASSPATH
  31.       - Using the JIT Compiler
  32.       - Microsoft Windows Installation Troubleshooting
  33.       - Possible Problems with Winsock
  34.     - Solaris
  35.       - Running JDK Tools in Solaris
  36.       - Solaris PATH and CLASSPATH
  37.       - Solaris Installation Troubleshooting
  38.     - Running Applets with the AppletViewer
  39.     - Debugging Programs with the Debugger
  40.     - Java Plug-in Compatibility
  41.  
  42.   Class Load Hook
  43.     - Configuring a Class Load Hook
  44.     - The Class Load Hook API
  45.  
  46.   Euro Support
  47.     - Encodings and Euro Support
  48.     - Locales and Euro Support
  49.  
  50.   Data Transfer Problems on Windows
  51.  
  52.   Deploying Java Applications
  53.     - Runtime Environment
  54.     - Installation
  55.  
  56.  
  57. =======================================================================
  58.                   OVERVIEW OF THE JAVA DEVELOPMENT KIT
  59. =======================================================================
  60.  
  61. -----------------------------------------------------------------------
  62. INTRODUCTION
  63. -----------------------------------------------------------------------
  64. This is version 1.1.7A of the Java Development Kit.  The Java 
  65. Development Kit is a development environment for writing applets 
  66. and applications that conform to the Java 1.1 Core API.  Its compiler 
  67. and other tools are run from a shell and have no GUI interface. This 
  68. version includes improvements in functionality, performance, and 
  69. quality over version 1.0.2 of the Java platform, including bug fixes 
  70. since the previous release of the 1.1 platform.
  71.  
  72. This is a maintenance release.  Changes made to the JDK software since 
  73. the first 1.1 beta release are in the file named CHANGES.
  74.  
  75. Because there are no API changes in maintenance releases, we continue 
  76. to refer to this platform as the Java platform 1.1 rather than 1.1.7A.   
  77. While bugs have been fixed in version 1.1.7A, the platform hasn't 
  78. changed.
  79.  
  80. A Symantec JIT bytecode compiler is included in the Windows version 
  81. of this JDK software. The Symantec JIT compiler is copyrighted (c), 
  82. 1996-1998, by Symantec Corporation. All rights reserved. All tools in 
  83. the Windows version of the JDK software use the JIT by default.
  84. To disable the JIT, see "Using the JIT," below.
  85.     
  86. The Java platform 1.1 offers new capabilities over the 1.0 platform:  
  87. Internationalization, signed applets, JAR file format, AWT (window 
  88. toolkit) enhancements, JavaBeans(tm) component model, networking 
  89. enhancements, Math package for large numbers, Remote Method Invocation 
  90. (RMI), Reflection, database connectivity (JDBC), new Java Native 
  91. Interface, Object Serialization, Inner Classes, and performance 
  92. enhancements.
  93.  
  94. For further description of these features, see the "New Feature 
  95. Summary" in the JDK documentation.
  96.  
  97. As part of our ongoing effort to improve the quality of the JDK 
  98. software, we will continue to fix bugs and develop new features. In 
  99. order to help us prioritize our bug-fixing effort, please submit any 
  100. bugs you find as soon as possible, using the procedure described in 
  101. the "Reporting Bugs" section below.
  102.  
  103. The Java Development Kit is a product of Sun Microsystems, Inc.  
  104. JavaSoft(tm), an operating company of Sun Microsystems, develops the 
  105. JDK software.
  106.  
  107.  
  108. -----------------------------------------------------------------------
  109. PURPOSE
  110. -----------------------------------------------------------------------
  111. The JDK software allows you to:
  112.  
  113.       - Develop applets that will run in browsers supporting the
  114.         Java platform 1.1.
  115.  
  116.       - Develop applications.  Applications run without the
  117.         need for a browser. (HotJava itself is written in the Java 
  118.         programming language.)
  119.  
  120.  
  121. -----------------------------------------------------------------------
  122. VERSION COMPATIBILITY
  123. -----------------------------------------------------------------------
  124. In general, any applet or application that ran in version 1.0.2 of the 
  125. Java Development Kit should run correctly in version 1.1.7A.  A failure 
  126. to do so is a bug, except for a small number of cases where 
  127. compatibility has had to be broken to close potential security holes or 
  128. fix implementation or design bugs.  
  129.  
  130. Of course, applets that depend on any new 1.1 APIs will not work on 
  131. any browsers that support only 1.0.2, such as Internet Explorer 3.0 and 
  132. Netscape 3.0.  However, in general, applets relying only on APIs 
  133. defined in 1.0.2 (but compiled with the JDK 1.1 compiler) will run on 
  134. 1.0.2 browsers.  This "downwards" compatibility has not been 
  135. extensively tested and cannot be guaranteed. 
  136.  
  137. For more details, see the document on compatibility at:
  138.  
  139.    http://java.sun.com/products/jdk/1.1/compatibility.html
  140.  
  141. If you find any such incompatibilities that are not listed on the
  142. Compatibility web page, please report them to us as noted below
  143. under "Reporting Bugs," and mention that they are compatibility
  144. bugs.  Compatibility is critically important to us, and a cornerstone
  145. of the promise: Write Once, Run Anywhere(tm).
  146.  
  147. -----------------------------------------------------------------------
  148. BUG FIXES
  149. -----------------------------------------------------------------------
  150. As with any release, we will continue vigorously testing and debugging 
  151. the JDK software.  If we uncover any important bugs, we will post them 
  152. on the Java Developer Connection(sm) web site at:
  153.  
  154.    http://java.sun.com/jdc/bugParade/index.html
  155.  
  156. As always, your comments and bug reports are important to making 
  157. future releases successful.  We will use your feedback to help plan 
  158. future releases.  Please report bugs, request features and submit 
  159. comments using the procedure noted below in the sections "Submitting 
  160. Comments" and "Reporting Bugs and Requesting Features". 
  161.  
  162.  
  163. -----------------------------------------------------------------------
  164. WHAT THE JDK SOFTWARE CONTAINS
  165. -----------------------------------------------------------------------
  166.  
  167. RUNTIME ----------------------------------------------------------
  168.  
  169.     - Core Classes (classes.zip)
  170.             DO NOT UNZIP THIS FILE!  It must remain zipped for the
  171.             compiler and interpreter to access the class files
  172.             within it properly.  This file contains all of the
  173.             the compiled .class files for the platform.
  174.  
  175. SOURCE FILES -----------------------------------------------------
  176.  
  177.     - Source Files for Public Classes 
  178.             (src.zip file or src directory)
  179.             This is the set of source files used to create the
  180.             classes included in the core classes classes.zip 
  181.             file (above).  These source files are provided for 
  182.             information purposes only, to help developers learn
  183.             and use the Java programming language.  They do not 
  184.             include the private java.* classes or the sun.* 
  185.             classes, and therefore cannot be compiled into a 
  186.             complete classes.zip file.
  187.  
  188.             Do not modify these classes;  instead, create subclasses
  189.             and override where you need to. These classes are 
  190.             documented in the API Reference documentation, which is 
  191.             generated by javadoc.  
  192.  
  193.             How this is installed depends on the platform:
  194.  
  195.              - On Windows, these are automatically unzipped for you
  196.                during installation.
  197.  
  198.              - On Solaris, you must unzip the src.zip file yourself.
  199.                You can get a free copy of the correct version
  200.                of unzip in source form (which you must compile) from:
  201.  
  202.                http://www.cdrom.com/pub/infozip/zlib/
  203.  
  204.                or 
  205.  
  206.                ftp://ftp.cdrom.com/pub/infozip/zlib/
  207.  
  208.            or
  209.  
  210.            ftp://ftp.uu.net/pub/archiving/zip/UNIX/SUN/
  211.               
  212. TOOLS ------------------------------------------------------------
  213.  
  214.     - Java Compiler (javac)
  215.             Compiles programs written in the Java programming language
  216.             into bytecodes.
  217.  
  218.     - Java Interpreter (java)
  219.             Executes Java bytecodes.  In other words, it runs 
  220.             programs written in the Java programming language.
  221.  
  222.     - Jave Runtime Interpreter (jre)
  223.         Similar to the Java Interpreter (java), but intended for 
  224.         end users who do not require all the development-related 
  225.             options available with the java tool.
  226.  
  227.     - Java AppletViewer (appletviewer)
  228.             Used for testing and running applets.
  229.  
  230.     - Java Debugger (jdb)
  231.             Helps you find bugs in programs.
  232.  
  233.     - Class File Disassembler (javap)
  234.             Disassembles compiled files and prints out a
  235.             representation of the bytecodes.
  236.  
  237.     - Java Documentation Generator (javadoc)
  238.             Parses the declarations and documentation comments in
  239.             a set of source files and produces a set of HTML pages
  240.             describing the public and protected classes, interfaces,
  241.             constructors, methods, and fields. Also produces
  242.             a class hierarchy and an index of all members.
  243.  
  244.     - C Header and Stub File Generator (javah)
  245.             For attaching native methods to code written in the 
  246.             Java programming language.
  247.  
  248.     - Java Archive Tool (jar)
  249.             Combines many class files and other resources
  250.             into a single jar file.
  251.  
  252.     - Digital Signing Tool (javakey)
  253.             Manages entities, including their keys, certificates,
  254.             and the trust associated with them.
  255.  
  256.     - Native-To-ASCII Converter (native2ascii)
  257.             Converts a native encoding file to an ascii
  258.             file that includes the \udddd Unicode notation.
  259.  
  260.     - Java RMI Stub Converter (rmic)
  261.             Generates objects from the names of compiled classes
  262.             that contain remote object implementations.
  263.  
  264.     - Java Remote Object Registry (rmiregistry)
  265.             Creates and starts a remote object registry on the
  266.             specified port of the current host.
  267.  
  268.     - Serial Version Command (serialver)
  269.             Returns the serialVersionUID for one or more classes
  270.             in a form suitable for copying into an evolving class.
  271.  
  272.     - AWT 1.1 Conversion Tool (updateAWT)
  273.             Included with the JDK AWT documentation,
  274.             rather than in the bin directory.
  275.             Updates deprecated 1.0 AWT names to new 1.1 AWT
  276.             names (for Sun Solaris and UNIX systems, or Windows
  277.             systems with the MKS toolkit).
  278.  
  279.     - Various C libraries and include files
  280.  
  281. JAVA DOCUMENTATION AND DEMOS ------------------------------------------
  282.  
  283.     - demo directory
  284.             awt-1.1         AWT demos
  285.             i18n            Internationalization demos
  286.  
  287.             Animator        General-purpose animator
  288.             ArcTest         Test arc drawing and filling
  289.             BarChart        Simple bar-chart applet
  290.             Blink           Blinking, multicolored text
  291.             CardTest        Test card layout manager
  292.             Clock           Analog clock
  293.             DitherTest      Test image dithering
  294.             DrawTest        Draw points and lines
  295.             Fractal         Fractal figures
  296.             GraphLayout     Graph layout by iterated relaxation
  297.             GraphicsTest    Test graphics operations
  298.             ImageMap        Live-feedback image map
  299.             JumpingBox      Catch the jumping box
  300.             MoleculeViewer  Three-dimensional chemical model viewer
  301.             NervousText     Nervous text
  302.             SimpleGraph     Draw a simple graph
  303.             SortDemo        Animated sorting algorithms
  304.             SpreadSheet     Simple spreadsheet
  305.             TicTacToe       Tic-tac-toe game
  306.             WireFrame       Three-dimensional wire-frame model viewer
  307.  
  308.       RMI demos are available in the separately-downloadable 
  309.       JDK documentation.  See the entry "Demonstration Applets
  310.       and Applications" in the JDK documentation table of 
  311.       contents for access.
  312.  
  313.     - README
  314.             This file you are currently reading
  315.  
  316.     - CHANGES
  317.             Changes made in the beta and final releases
  318.  
  319.     - COPYRIGHT
  320.             Copyright notice for the JDK software
  321.  
  322.     - LICENSE
  323.             License agreement for the JDK software
  324.  
  325. NOTE: The JDK software does NOT include a Web browser.  To obtain the 
  326. HotJava(tm) Browser, see the HotJava Browser web page:
  327.  
  328.       http://java.sun.com/products/hotjava/
  329.  
  330.  
  331. -----------------------------------------------------------------------
  332. WHERE TO FIND MORE INFORMATION
  333. -----------------------------------------------------------------------
  334. This README file and the accompanying CHANGES, LICENSE, COPYRIGHT 
  335. files, demo directory, and source code (src.zip) are the only
  336. documentation included in this JDK software bundle. You can browse
  337. the JDK documentation by visiting the JavaSoft web site, or
  338. you can download the JDK Documentation Bundle from:
  339.  
  340.           http://java.sun.com/products/jdk/1.1/
  341.  
  342. The JDK Documentation Bundle includes:
  343.  
  344.      - Release Notes
  345.      - API Reference
  346.      - Guide to New Features
  347.      - Additional Demo Programs
  348.      - Demo Overview Page
  349.      - Tools Documentation
  350.  
  351. The Documentation Bundle is designed to be extracted into the JDK
  352. software installation directory. If you download the ZIP archive
  353. version, be sure to preserve the file path names when you extract the
  354. files from the archive. (With pkunzip, specify the -d option.)
  355.  
  356. If you are new to the Java programming language, you will want to
  357. browse or download the Java Tutorial at:
  358.  
  359.     http://java.sun.com/docs/books/tutorial/
  360.  
  361. For a comprehensive list of online documents, go to the JavaSoft
  362. Documentation page at:
  363.  
  364.     http://java.sun.com/docs/
  365.  
  366. -----------------------------------------------------------------------
  367. SUBMITTING COMMENTS
  368. -----------------------------------------------------------------------
  369. We are very interested in receiving your comments and suggestions as 
  370. early as possible.  
  371.  
  372. If you have a specific feature request or bug to report, please 
  373. refer to the next section for how to submit it. Send other comments 
  374. and informal suggestions directly to us at our JavaSoft email addresses 
  375. at Sun, which are listed at:
  376.  
  377.      http://java.sun.com/mail/
  378.  
  379. Here is a summary of what is on this web page:
  380.  
  381.  - Technical Help - Sun does not provide free technical help.
  382.    See the above web page for some places to obtain help with your
  383.    programming problems.
  384.  
  385.  - JavaSoft Email Addresses - The following are our most current
  386.    email addresses as of this release.  Use these for sending 
  387.    comments and informal suggestions. 
  388.  
  389.       java-intl@java.sun.com                   Internationalization
  390.       java-awt@java.sun.com                    AWT package
  391.       java-security@java.sun.com               Security package
  392.       java-io@java.sun.com                     IO package
  393.       java-net@java.sun.com                    Net package
  394.       jdbc@wombat.eng.sun.com                  JDBC package
  395.       jdbc-odbc@wombat.eng.sun.com             JDBC-ODBC bridge
  396.       java-beans@java.sun.com                  Beans package
  397.       reflection-comments@worthy.eng.sun.com   Reflection package
  398.       jni@java.sun.com                         Java Native Interface
  399.       javadoc@sun.com                   Javadoc Tool
  400.  
  401.    If your comment does not fall into any of those categories,
  402.    please send it to:
  403.  
  404.       jdk-comments@java.sun.com                General comments
  405.  
  406.    While we are not able to respond individually to each comment,
  407.    we do review all comments.
  408.  
  409.  
  410. -----------------------------------------------------------------------
  411. REPORTING BUGS AND REQUESTING FEATURES
  412. -----------------------------------------------------------------------
  413. To report bugs or feature requests, go to this web page:
  414.  
  415.      http://java.sun.com/cgi-bin/bugreport.cgi
  416.  
  417. This gives you instructions for checking if your bug is a duplicate
  418. by allowing you to look in our known bugs list.  This also gives
  419. instructions for how to submit bugs and request features.
  420.  
  421. When submitting a bug, be sure you include the version number of
  422. the JDK software you are running.  You can get the version number of 
  423. the JDK software by executing:
  424.  
  425.     java -version
  426.  
  427.  
  428. -----------------------------------------------------------------------
  429. JAVABEANS(tm) AND THE BEANS DEVELOPMENT KIT
  430. -----------------------------------------------------------------------
  431. A version of the Beans Development Kit (BDK) is also available for 
  432. immediate download from JavaSoft.  BDK includes specific tools and 
  433. support for JavaBeans developers such as the BeanBox test containers
  434. and example beans. See:
  435.  
  436.     http://java.sun.com/beans/bdk_download.html
  437.  
  438. We will continue to ship the BDK in addition to the JDK software.  
  439. Updates to the BDK, tools, and general JavaBeans information 
  440. will be posted on a regular basis to the JavaBeans web site:
  441.  
  442.      http://java.sun.com/beans
  443.  
  444.  
  445.  
  446. =======================================================================
  447.                 INSTALLING AND RUNNING THE JDK SOFTWARE
  448. =======================================================================
  449.  
  450. -----------------------------------------------------------------------
  451. INSTALLATION NOTES
  452. -----------------------------------------------------------------------
  453.     
  454.     IMPORTANT: Please make sure you understand the Copyright
  455.     and License information (in the files named COPYRIGHT and 
  456.     LICENSE) before installing this release.
  457.     
  458. The JDK software and documentation are available in two separate
  459. downloadable compressed files, called "bundles".  They need to be 
  460. downloaded separately into the same directory and unpacked as follows 
  461. for the few html links between them to work.
  462.  
  463. Here are the abbreviated instructions.  (The installation procedure 
  464. is different on different platforms, so these instructions are 
  465. quite general.)
  466.  
  467.   1. Go to the download page for the Java Development Kit and download 
  468.      the software and documentation separately:
  469.  
  470.         http://java.sun.com/products/jdk/1.1/
  471.  
  472.   2. Follow the installation instructions for your particular 
  473.      platform at:
  474.  
  475.       http://java.sun.com/products/jdk/1.1/installation-solaris2.html
  476.  
  477.         OR
  478.  
  479.       http://java.sun.com/products/jdk/1.1/installation-win32-x86.html
  480.  
  481.   3. Unpack the software and documentation bundles according to the
  482.      instructions on the web page given in step 2.  You should end up
  483.      with the directory structure shown below.
  484.  
  485.   4. Set the PATH and CLASSPATH for Windows or Solaris as
  486.      described in the section that follows.
  487.  
  488.   5. Use a web browser to go to your new, local JDK documentation
  489.      table of contents by opening the "index.html" file in the "docs" 
  490.      directory.
  491.  
  492.  
  493.                            jdk1.1.7A
  494.     _________________________|_____________________________________
  495.    |      |         |      |      |   |     |     |    |    |      |
  496. README CHANGES COPYRIGHT LICENSE bin lib include demo src docs index.html
  497.                                   |   |     |     |    |    |
  498.                                                             |
  499.                                _____________________________|_____
  500.                               |       |        |       |          |
  501.                              api  tooldocs relnotes  guide    index.html
  502.                               |       |        |       |
  503.   
  504.  
  505.    The "src" directory shown above originally appears as a "src.zip"
  506.    file in the Solaris installation, which you must manually unzip.
  507.    On Windows, the installer automatically unzips it for you.
  508.  
  509.  
  510. -----------------------------------------------------------------------
  511. RUNNING JDK TOOLS IN MICROSOFT WINDOWS
  512. -----------------------------------------------------------------------
  513. After installing the JDK software, you start a tool by typing its
  514. name into the DOS window with a filename as an argument.  None of
  515. the main JDK tools are Windows programs with GUI interfaces -- they
  516. are all run from the DOS command line.  (For example, if you 
  517. double-click on the compiler "javac" icon, it will briefly open and 
  518. immediately close a DOS window, because that is not the proper way to 
  519. run it.)
  520.  
  521. You can specify the path to a tool either by typing the path in 
  522. front of the tool each time, or by adding the path to the startup file 
  523. (autoexec.bat).  For example, if the JDK software is installed at 
  524. C:\jdk1.1.7A, to run the compiler on a file myfile.java, go to a DOS 
  525. shell and execute this:
  526.  
  527.     Type:  C:\jdk1.1.7A\bin\javac myfile.java
  528.  
  529.      -or- 
  530.  
  531.     Add    C:\jdk1.1.7A\bin to your path statement
  532.     Type:  javac myfile.java
  533.  
  534. See the next section about setting the PATH and CLASSPATH variables.
  535.  
  536. -----------------------------------------------------------------------
  537. MICROSOFT WINDOWS PATH and CLASSPATH
  538. -----------------------------------------------------------------------
  539. The CLASSPATH is not required, but if it is set, it will need to be
  540. unset.  You may want to update the "path" variable for convenience.
  541.  
  542.      Developing in both versions 1.0.2 and 1.1.7A - If you want 
  543.      to develop in both versions 1.0.2 and 1.1.7A, you must
  544.      set CLASSPATH (and PATH) separately for each one.  
  545.      To run both versions simultaneously, you can run 
  546.      each one from its own DOS window.  If you are running 
  547.      only one at a time, you can write a batch script to
  548.      switch the value of CLASSPATH (and PATH). 
  549.  
  550.      Windows NT only - If you are using Windows NT, it is  
  551.      preferable to make the following environment variable  
  552.      changes in the Control Panel. Start the Control Panel,  
  553.      select System, then edit the environment variables. 
  554.  
  555.   1. PATH -  Add the absolute path of the "jdk1.1.7A\bin" 
  556.      directory to your PATH statement as follows. 
  557.  
  558.      The PATH statement enables Windows to find the executables 
  559.      (javac, java, javadoc, etc.) from any current directory.
  560.  
  561.      To find out the current value of your PATH, at the
  562.      DOS prompt type:
  563.  
  564.          C:\> path
  565.  
  566.      To change the PATH, open the AUTOEXEC.BAT file and make the
  567.      change to the PATH statement. To edit the AUTOEXEC.BAT
  568.      file in Windows 95: 
  569.  
  570.        i. Start a text editor by choosing "Start", "Programs", 
  571.           "Accessories", and choosing WordPad or NotePad. 
  572.       ii. Choose Open from the File menu and type "c:\autoexec.bat" 
  573.           for the filename This will open the file for editing. 
  574.      iii. Look for the PATH statement. Notice that the PATH statement
  575.           is a series of directories separated by semi-colons (;).  
  576.           Windows looks for programs in the PATH directories in order,
  577.           from left to right. Look for other versions in the PATH.
  578.           There should only be one path to a classes.zip file.
  579.           When in doubt, put the java directory at the end of 
  580.           the path statement. For example, in the following PATH
  581.           statement, we have added the java directory at the end: 
  582.  
  583.            PATH C:\WINDOWS;C:\WINDOWS\COMMAND;C:\;C:\DOS;C:\JDK1.1.7A\BIN 
  584.  
  585.      To make the path take effect, execute the following:
  586.  
  587.            C:\> autoexec.bat
  588.  
  589.  
  590.   2. CLASSPATH Environment Variable - If you follow the default 
  591.      installation, you do not need to set CLASSPATH, because the
  592.      tools automatically set it for you.  If your CLASSPATH has 
  593.      not previously been set, you can skip this step.
  594.  
  595.      UNSETTING CLASSPATH
  596.  
  597.        If you have previously set the CLASSPATH and want to
  598.        unset it, you normally need to change the current value
  599.        (at the command line) and the startup value (in a startup
  600.        file or script).  For example, to see if it is currently 
  601.        set, type:
  602.  
  603.           % set
  604.  
  605.        This lists all of the environment variables.  CLASSPATH
  606.        will not appear if it is not set.
  607.  
  608.        If it is set, you can unset the current value by setting
  609.        it to no value:
  610.  
  611.           % set CLASSPATH=
  612.  
  613.        Also open your startup file (autoexec.bat) or script and 
  614.        remove the path to the Java platform classes from the 
  615.        CLASSPATH environment variable, if you want the change to 
  616.        be permanent.
  617.  
  618.      WHAT CLASSPATH DOES
  619.  
  620.        The CLASSPATH tells the Java virtual machine and other  
  621.        applications (which are located in the "jdk1.1.7A\bin" 
  622.        directory) where to find the class libraries, such as 
  623.        classes.zip file (which is in the lib directory).  
  624.        By default, the java tools temporarily append the 
  625.        following to whatever CLASSPATH you have explicitly 
  626.        set in your startup file:
  627.  
  628.        .;[bin]\..\classes;[bin]\..\lib\classes.zip
  629.  
  630.        where [bin] is substituted by the absolute path to the   
  631.        jdk1.1\bin directory.  Therefore, if you keep the bin and  
  632.        lib directories at the same directory level (that is, if 
  633.        they have a common parent directory), the executables 
  634.        will find the classes.  You need to set the CLASSPATH only 
  635.        if you move classes.zip or want to load a different library 
  636.        (such as one you develop).  
  637.  
  638.      Refer to the Windows Installation Troubleshooting section below 
  639.      if you have problems running the JDK software.
  640.  
  641.  
  642. -----------------------------------------------------------------------
  643. USING THE JIT COMPILER
  644. -----------------------------------------------------------------------
  645. The Win32 Just In Time (JIT) bytecode compiler converts virtual
  646. machine bytecodes to native instructions before execution. This can
  647. cause some delay in program startup and class file loading, but can
  648. also reduce overall program execution time by a factor of ten.
  649.  
  650. In the Win32 version of the Java Development Kit, the JIT is part of 
  651. the JDK software and is invoked by default. Should you ever want to 
  652. disable the JIT compiler, you can do so by setting the java.compiler 
  653. property to NONE:
  654.  
  655.     java -Djava.compiler=NONE MyClass
  656.  
  657. This method of disabling the JIT compiler works with both this 
  658. release of the Java Development Kit and with the JDK 1.2 software. It 
  659. is the recommended method for disabling the JIT.  In this version of 
  660. the Java Development Kit, you can also disable the JIT compiler by 
  661. using the -nojit command-line option:
  662.  
  663.     java -nojit MyClass
  664.     jre -nojit MyClass
  665.  
  666. Some JDK tools, such as appletviewer, run by invoking a launcher. To
  667. use these tools without the JIT, uses the -J option to pass the -nojit
  668. option to the launcher:
  669.  
  670.     appletviewer -J-nojit mypage.html
  671.  
  672. With the java tool, setting JAVA_COMPILER also affects JIT usage. The
  673. jre tool ignores JAVA_COMPILER. Both tools also use the java.compiler
  674. property to determine JIT usage. See the appropriate tool
  675. documentation.
  676.  
  677. -----------------------------------------------------------------------
  678. MICROSOFT WINDOWS INSTALLATION TROUBLESHOOTING
  679. -----------------------------------------------------------------------
  680. Here are four troubleshooting tips for Microsoft Windows.
  681.  
  682.    * If you see the following error message 
  683.  
  684.         net.socketException: errno = 10047
  685.  
  686.         -or-
  687.  
  688.         Unsupported version of Windows Socket API
  689.  
  690.      check which TCP/IP drivers you have installed. The AppletViewer
  691.      supports only the Microsoft TCP/IP drivers included with 
  692.      Windows 95. If you are using third-party drivers (e.g., 
  693.      Trumpet Winsock), you'll need to change over to the native
  694.      Microsoft TCP/IP drivers if you want to load applets over the
  695.      network. 
  696.  
  697.    * If the AppletViewer does not load applets then you might
  698.      try the following: 
  699.  
  700.       1. set HOMEDRIVE=c:
  701.          set HOMEPATH=\
  702.          and restart the AppletViewer (in the same DOS box) 
  703.  
  704.       2. set HOME=c:\
  705.          and restart the AppletViewer (in the same DOS box) 
  706.  
  707.      If none of these work, try: 
  708.  
  709.          java -verbose sun.applet.AppletViewer
  710.  
  711.      This lists the classes that are being loaded. From this output, 
  712.      you can determine which class the AppletViewer is trying to 
  713.      load and where it's trying to load it from. Check to make sure
  714.      that the class exists and is not corrupted in some way. 
  715.  
  716.    * Error Message: "Exception in thread NULL"
  717.      or "Unable to initialize threads: cannot find class 
  718.      java/lang/Thread" (yes, with forward slashes)
  719.  
  720.      If you are getting one of these fatal error messages 
  721.      when running java, javac, or appetviewer, you should check 
  722.      your CLASSPATH environment variable. It may list 
  723.      "c:\java" or the "classes" directory from an older 
  724.      release.  You can either unset the CLASSPATH variable, 
  725.      or set it to include only the latest version of the Java 
  726.      platform class library.  For example: 
  727.  
  728.         C:\> set CLASSPATH=.;C:\jdk1.1.7A\lib\classes.zip
  729.  
  730.      This will make sure that you are using the correct classes 
  731.      for this release.
  732.  
  733.    * Cannot close AppletViewer copyright window (Windows 95 only)
  734.      In Microsoft Windows 95, the launch bar may partially cover
  735.      the AppletViewer copyright notice window Accept and Reject 
  736.      buttons. If this happens, you can move the Windows 95
  737.      launch bar to the side of the desktop to allow access to 
  738.      the copyright window Accept and Reject buttons.
  739.  
  740. -----------------------------------------------------------------------
  741. POSSIBLE PROBLEMS WITH WINSOCK
  742. -----------------------------------------------------------------------
  743. When installing the JDK software on a Windows 95 system, the installer 
  744. will check to see if Winsock 2 is installed on the system. Winsock 2 is 
  745. the most recent version of the networking layer (Winsock) for Windows 
  746. and is published by Microsoft. If Winsock 2 isn't installed, the 
  747. installer will offer to install it.
  748.  
  749. Winsock 2 is advertised as being fully backward compatible with
  750. Winsock 1.1, its predecessor. Occasionally, however, some Windows
  751. configurations seem be adversely affected after installing Winsock 2. 
  752. Problems that have been reported include networking programs (such
  753. as news and mail readers, browsers, etc) that stop working or even
  754. start crashing.
  755.  
  756. If this happens on your system, you should remove Winsock 2 from your
  757. system. This is a simple, three-step procedure:
  758.  
  759. 1. go to C:\Windows\WS2BAKUP directory
  760. 2. run the WS2BAKUP.BAT script
  761. 3. reboot your machine
  762.  
  763. Even without Winsock 2, the JDK software will continue to work properly. 
  764. In heavy multi-tasked network applications, such as servers, Winsock 1.1
  765. bugs may manifest themselves. Most other applications will be
  766. unaffected. We recommend that you upgrade to Winsock 2 as soon as
  767. possible.
  768.  
  769. -----------------------------------------------------------------------
  770. RUNNING JDK TOOLS IN SOLARIS
  771. -----------------------------------------------------------------------
  772. After installing the JDK software, you start a tool by typing its
  773. name into a shell window with a filename as an argument.  You can 
  774. specify the path to a tool either by typing the path in front of 
  775. the tool each time, or by adding the path to the startup file.  
  776. For example, if the JDK software is installed at /usr/local/jdk1.1.7A, 
  777. to run the complier on a file myfile.java, go to a shell and execute:
  778.  
  779.     Type:  /usr/local/jdk1.1.7A/bin/javac myfile.java
  780.  
  781.      -or- 
  782.  
  783.     Add  /usr/local/jdk1.1.7A/bin to your path statement 
  784.     Type:  javac myfile.java
  785.  
  786. The path and CLASSPATH variables are not required, but it is helpful 
  787. to know more about them.  See the next section about setting these 
  788. variables.
  789.  
  790.  
  791. -----------------------------------------------------------------------
  792. SOLARIS PATH and CLASSPATH
  793. -----------------------------------------------------------------------
  794. The CLASSPATH is not required, but if it is set, it will need to be 
  795. unset.  You may want to update the "path" variable for convenience.
  796.  
  797.      NOTE - If you want to develop in both version 1.0.2 and 
  798.      version 1.1.7A, you must set CLASSPATH (and path) separately
  799.      for each one.  To run both versions simultaneously, you 
  800.      can run each one from its own shell window.  If you are
  801.      running only one at a time, you can write a batch script 
  802.      to switch the value of CLASSPATH (and PATH). 
  803.  
  804.   1. Path Variable -  Add the absolute path of the "jdk1.1.7A/bin"
  805.      directory to your Unix path variable, as follows.  
  806.  
  807.      The path variable enables Solaris to find the executables 
  808.      (javac, java, javadoc, etc.) from any current directory.
  809.      To find out if the path is currently set for any java tools,
  810.      execute:
  811.  
  812.         % which java
  813.  
  814.      This will print the path to java, if it can find it.
  815.  
  816.      If you use the C shell (csh), you can set the path in 
  817.      your startup file (~/.cshrc) as follows, for example:
  818.  
  819.         set path=($path /usr/local/jdk1.1.7A/bin)
  820.  
  821.      Then load the startup file and verify that the path 
  822.      is set by repeating the "which" command above:
  823.  
  824.         % source ~/.cshrc
  825.         % which java
  826.  
  827.   2. CLASSPATH Environment Variable - If you follow the default 
  828.      installation, you do not need to set CLASSPATH, because the
  829.      shell scripts automatically set it for you.    If your CLASSPATH 
  830.      has not previously been set, you can skip this step.
  831.  
  832.  
  833.      If you want to develop in both 1.0.2 and 1.1.7A, you must set 
  834.      CLASSPATH separately for each one.  To run both simultaneously, 
  835.      run each one in its own DOS window.  If you are running only one 
  836.      at a time, you can write a batch script to switch the value of 
  837.      CLASSPATH. 
  838.  
  839.      UNSETTING CLASSPATH
  840.  
  841.        If you have previously set the CLASSPATH and want to
  842.        unset it, you normally need to change the current value
  843.        (at the command line) and the startup value (in a startup
  844.        file or script).  For example, to see if it is currently 
  845.        set, type:
  846.  
  847.           % echo $CLASSPATH
  848.  
  849.        If it is set, you can unset the current value by typing:
  850.  
  851.           % unsetenv CLASSPATH
  852.  
  853.        Also open your startup file (~/.cshrc) or script and 
  854.        remove the path to the JDK classes from the CLASSPATH 
  855.        environment variable if you want the change to be 
  856.        permanent.
  857.  
  858.      WHAT CLASSPATH DOES
  859.  
  860.        The CLASSPATH tells the Java virtual machine and other 
  861.        applications (which are located in the "jdk1.1.7A/bin" directory) 
  862.        where to find the class libraries, such as classes.zip file  
  863.        (which is in the lib directory).  By default, the java tools 
  864.        temporarily append the following to whatever CLASSPATH 
  865.        you have explicitly set in your startup file:
  866.  
  867.        .:[bin]/../classes:[bin]/../lib/classes.zip
  868.  
  869.        where [bin] is substituted by the absolute path to the 
  870.        jdk1.1/bin directory.  Therefore, if you keep the bin and 
  871.        lib directories at the same directory level (that is, if
  872.        they have a common parent directory), the executables
  873.        will find the classes.  You need to set the CLASSPATH only 
  874.        if you move classes.zip or want to load a different library
  875.        (such as one you develop).  
  876.  
  877.      Refer to the Solaris Installation Troubleshooting section below 
  878.      if you have problems running the JDK software.
  879.  
  880. -----------------------------------------------------------------------
  881. SOLARIS INSTALLATION TROUBLESHOOTING
  882. -----------------------------------------------------------------------
  883.    * Error Message: "Exception in thread NULL"
  884.      or "Unable to initialize threads: cannot find class java/lang/Thread"
  885.  
  886.      If you are getting one of these fatal error messages 
  887.      when running java, javac, or appetviewer, you should check 
  888.      your CLASSPATH environment variable. It may list 
  889.      "java" or the "classes" directory from an older 
  890.      release.  You can either unset the CLASSPATH variable, 
  891.      or set it to include only the latest version of the Java platform 
  892.      class library.  For example: 
  893.  
  894.      % setenv CLASSPATH .:/usr/local/jdk1.1.7A/lib/classes.zip
  895.  
  896.      This will ensure that you are using the correct classes for 
  897.      this release.
  898.  
  899.  
  900. -----------------------------------------------------------------------
  901. RUNNING APPLETS WITH THE APPLETVIEWER
  902. -----------------------------------------------------------------------
  903. AppletViewer allows you to run one or more applets that are called by 
  904. reference in a web page (HTML file) using the APPLET tag.  The
  905. AppletViewer finds the APPLET tags in the HTML file and runs the 
  906. applets (in separate windows) as specified by the tags.
  907.  
  908. AppletViewer is for viewing applets.  It cannot display an entire 
  909. web page that contains many HTML tags.  It parses only the APPLET 
  910. tag and no other HTML on the web page.
  911.   
  912. To run an applet with appletviewer, you go to a command line for 
  913. your operating system and run appletviewer, passing in the filename 
  914. or URL of the web page as its argument. 
  915. _______
  916. SOLARIS
  917.  
  918.   Here is an example of how to invoke AppletViewer on a file-based
  919.   web page in Solaris.  First change to the "jdk1.1.7A" directory.  
  920.   Then execute:
  921.  
  922.   bin/appletviewer demo/GraphLayout/example1.html
  923.  
  924.   Here is an example of how to invoke AppletViewer on a URL-based
  925.   web page in Solaris. Execute:
  926.  
  927.   bin/appletviewer http://java.sun.com/applets/NervousText/example1.html
  928. _______
  929. WINDOWS
  930.   Here is an example of how to invoke AppletViewer on a file-based
  931.   web page in Windows.  Go to a DOS prompt, change to the "jdk1.1.7A" 
  932.   directory and then execute:
  933.  
  934.   bin\appletviewer demo\GraphLayout\example1.html
  935.  
  936.   Here is an example of how to invoke AppletViewer on a URL-based
  937.   web page in Windows. Execute:
  938.  
  939.   bin\appletviewer http://java.sun.com/applets/NervousText/example1.html
  940.  
  941. ___________________________
  942. INNER CLASSES AND JAR FILES
  943.  
  944. Many users have reported problems using appletviewer to run applets
  945. when the applet classes are located in a JAR file. The applet class
  946. throws an IllegalAccessError when trying to access its own inner class.
  947. The same applet runs without error when all the class files are located
  948. on the file system.
  949.  
  950. This error occurs because the main applet class and the applet inner
  951. class have different class loaders. This can happen when the JAR file
  952. and the original class files are located in the same directory. It can
  953. also happen when the same JAR file is passed to appletviewer twice:
  954. once as an ARCHIVE attribute in an APPLET tag, and again in the class
  955. path. In both cases, the applet class loader loads the applet class,
  956. while the system class loader loads the inner class.
  957.  
  958. When running an applet from a JAR file, make sure that the classes
  959. files are only available in the JAR file, and that the JAR file is not
  960. in the class path.
  961.  
  962. This problem only occurs on the Java 1.1 platform. On the Java 1.2
  963. platform, improvements in the class loading mechanism avoid this
  964. problem.
  965.  
  966.  
  967. -----------------------------------------------------------------------
  968. DEBUGGING PROGRAMS WITH THE DEBUGGER (JDB)
  969. -----------------------------------------------------------------------
  970. You can debug applets using the -debug option of appletviewer.
  971. When debugging applets, it's best to invoke appletviewer from
  972. the directory that contains the applet's HTML file.  For example,
  973. on Solaris:
  974.  
  975.      cd demo/TicTacToe
  976.      ../../bin/appletviewer -debug example1.html
  977.  
  978. On the PC:
  979.  
  980.      cd demo\TicTacToe
  981.      ..\..\bin\appletviewer -debug example1.html
  982.  
  983. You can find documentation on the debugger and its API at:
  984.  
  985.      http://java.sun.com/products/jdk/1.1/debugging/
  986.  
  987. -----------------------------------------------------------------------
  988. JAVA PLUG-IN COMPATIBILITY
  989. -----------------------------------------------------------------------
  990. Certain bug fixes had to be removed from 1.1.7A. (See bug 4138263.) As a
  991. result, Java Plug-in 1.1.1 will not work with JDK 1.1.7A or JRE 1.1.7A. A
  992. new release, Java Plug-in 1.1.2, will be compatible with JDK 1.1.7A and
  993. JRE 1.1.7A. This Java Plug-in release will be available shortly after
  994. the JDK 1.1.7A release. For that reason, Java Plug-in 1.1.1, which
  995. includes JRE 1.1.6, will not be updated to include 1.1.7A. For more
  996. information, see the Java Plug-in overview at
  997.  
  998.     http://java.sun.com/products/plugin/
  999.  
  1000.  
  1001. =======================================================================
  1002.                 CLASS LOAD HOOK
  1003. =======================================================================
  1004.  
  1005. This release supports use of a class load hook, a native-code function 
  1006. called when each class is loaded. A class load hook can modify the 
  1007. class data to include profiling or debugging information.  This feature
  1008. was requested by development tool vendors. 
  1009.  
  1010. Support for a class load hook is a temporary feature and is subject to
  1011. change. Class load hook support is not part of the Java platform
  1012. specification and will not be available in any 1.2 version of the JDK
  1013. software. JDK 1.2 software includes profiling and debugging features
  1014. that are more powerful and general.
  1015.  
  1016. -----------------------------------------------------------------------
  1017. Configuring a Class Load Hook
  1018. -----------------------------------------------------------------------
  1019.  
  1020. If the environment variable _CLASSLOAD_HOOK is set, its value should be
  1021. the basename of a native code library.  For example, if the value of
  1022. _CLASSLOAD_HOOK is "myhook", the runtime looks for a Windows library
  1023. called myhook.dll or a Solaris library called myhook.so. The location
  1024. of the library depends on the system platform:
  1025.  
  1026.     * On Windows, the runtime looks in the bin directory of the JDK
  1027.       installation, then in each directory in the PATH environment
  1028.       variable.
  1029.  
  1030.     * On Solaris, the runtime look in the lib directory of the JDK
  1031.       installation, then in each directory in the LD_LIBRARY_PATH
  1032.       environment variable.
  1033.  
  1034.  
  1035. -----------------------------------------------------------------------
  1036. The Class Load Hook API
  1037. -----------------------------------------------------------------------
  1038.  
  1039. The class load hook library must export the following function:
  1040.  
  1041.     typedef struct {
  1042.     unsigned char *class_data;
  1043.     int            class_data_len;
  1044.     unsigned char *new_class_data;
  1045.     int            new_class_data_len;
  1046.     void *       (*malloc_f)(int);
  1047.     } classload_event;
  1048.  
  1049.     void ClassLoadHook(classload_event *);
  1050.  
  1051. The runtime calls ClassLoadHook() after it obtains the class file data
  1052. but before it constructs the in-memory class representation.
  1053. ClassLoadHook() is passed the existing class file data (via class_data
  1054. and class_data_len), and a pointer to a memory allocation function (via
  1055. malloc_f). ClassLoadHook() should use the memory allocation function to
  1056. create a new buffer for the modified class file data and return it via
  1057. new_class_data and new_class_data_len. If ClassLoadHook() chooses not
  1058. to modify a class, it should set new_class_data to NULL.
  1059.  
  1060. The runtime is responsible for deallocating the modified class file
  1061. data buffer.
  1062.  
  1063.  
  1064. =======================================================================
  1065.                  EURO SUPPORT
  1066. =======================================================================
  1067.  
  1068. This release includes support for the new European Union currency, the
  1069. euro. Changes include:
  1070.  
  1071.     * Unicode support is upgraded from version 2.0.14 to version 2.1.2.
  1072.     * Existing character encodings have changed and new encodings have
  1073.       been added.
  1074.     * New locales have been added.
  1075.  
  1076. In order for the JDK software's support for the euro character to 
  1077. function properly, you may need to install euro-support patches for 
  1078. your operating system.  For Windows NT and Windows 95, you can obtain 
  1079. the required patches from
  1080.    
  1081.    http://www.microsoft.com/windows/euro.asp
  1082.       
  1083. No patch is required for Windows 98.  Euro-support patches are also 
  1084. required if you are using versions of Solaris prior to 2.7.  Check 
  1085. with your Solaris support provider or visit the sunsolve website at 
  1086.    
  1087.    http://sunsolve.sun.com
  1088.    
  1089. for information on the availability of the Solaris euro-support 
  1090. patches.
  1091.  
  1092. The addition of euro support will not affect existing code, except for
  1093. character conversion code that relies on changed encodings. No APIs
  1094. were changed.
  1095.  
  1096. For information on the euro, see the euro web site at
  1097.  
  1098.     http://europa.eu.int/euro/
  1099.  
  1100.  
  1101. -----------------------------------------------------------------------
  1102. ENCODINGS AND EURO SUPPORT
  1103. -----------------------------------------------------------------------
  1104.  
  1105. The following encodings were modified to support the euro currency
  1106. character. Code point 0x88 was modified on Cp1251, code point 0x80 on
  1107. all the other encodings. These code points were previously unused.
  1108.  
  1109.     Cp874  -- Windows Thai
  1110.     Cp1250 -- Windows Eastern European
  1111.     Cp1251 -- Windows Cyrillic
  1112.     Cp1252 -- Windows Latin-1
  1113.     Cp1253 -- Windows Greek
  1114.     Cp1254 -- Windows Turkish
  1115.     Cp1255 -- Windows Hebrew
  1116.     Cp1256 -- Windows Arabic
  1117.     Cp1257 -- Windows Baltic
  1118.     Cp1258 -- Windows Vietnamese
  1119.  
  1120. There are also 12 new encodings. Of special interest is ISO8859_15.
  1121. This encoding supports ISO 8859-15, a character set standard not yet
  1122. approved. ISO 8859-15 is ISO 8859-1 with various changes, including
  1123. accented French and Finish characters and the euro currency symbol. ISO
  1124. 8859-15 is also known as Latin 9, Latin 0, and IBM 923.
  1125.  
  1126. Before JDK 1.1.7, the default encoding under Windows for Western
  1127. European locales was ISO8859_1. Starting with 1.1.7, the default
  1128. encoding for Western European Locales under Windows has been 
  1129. changed to Cp1252.
  1130.  
  1131. For a list of supported encodings see:
  1132.  
  1133. http://java.sun.com/products/jdk/1.1/docs/guide/intl/encoding.doc.html
  1134.  
  1135.  
  1136. -----------------------------------------------------------------------
  1137. LOCALES AND EURO SUPPORT
  1138. -----------------------------------------------------------------------
  1139.  
  1140. No existing locale resources have been modified for the euro. Instead,
  1141. new variant locale resources are provided for each country adopting the
  1142. euro. Previously, there were no Luxembourg locale resources. In this
  1143. release, Luxembourg gets both base and euro variant locales.
  1144.  
  1145. For a list of supported locales see:
  1146.  
  1147. http://java.sun.com/products/jdk/1.1/docs/guide/intl/locale.doc.html
  1148.  
  1149. Since the Java 1.1 platform specification is frozen, no API was added
  1150. to find the euro variant of a non-euro locale. The following example
  1151. code locates the euro variant of a non-euro locale. This example
  1152. assumes that only the locale resources provided with the JDK are
  1153. available. A more general solution would be much more complicated. 
  1154.  
  1155.     if (source.getVariant().indexOf("EURO") >= 0)
  1156.     newLocale = source;
  1157.     else
  1158.     newLocale = new Locale(source.getLanguage(),
  1159.         source.getCountry(),
  1160.         source.getVariant().length() > 0 ?
  1161.         (source.getVariant() + "_EURO") :
  1162.         "EURO");
  1163.  
  1164.  
  1165.  
  1166.  
  1167. =======================================================================
  1168.            DATA TRANSFER PROBLEMS ON WINDOWS
  1169. =======================================================================
  1170.  
  1171. A bug in the data transfer API (4032895) prevents most objects from
  1172. being copied to the Win32 clipboard. A common workaround is to convert
  1173. objects to a String representation, since String objects are not
  1174. affected by this bug.
  1175.  
  1176. One popular technique for converting an object to a string is to write
  1177. the object into a ByteArrayOutputStream and convert the stream to a
  1178. String with toString(). String.getBytes() reverses the process.
  1179.  
  1180. There is a potential problem with this kind of byte/character
  1181. conversion. Both toString() and getBytes() rely on a locale-specific
  1182. character encoder to translate byte values to and from Unicode
  1183. character values. Not all encoders assume a one-to-one relationship
  1184. between byte values and character values. To ensure a reliable
  1185. translation, do not rely on the default locale encoder. Explicitly
  1186. specify an encoder that uses a reversible translation, such as
  1187. ISO8859_1. Do this by passing the encoder name to toString() and
  1188. getBytes():
  1189.  
  1190.     aString = aStream.toString("ISO8859_1");
  1191.     aByteArray = aString.getBytes("ISO8859_1");
  1192.  
  1193. In previous releases, the need to use a reversible encoding was not
  1194. apparent to most programmers. ISO8859_1 was the default encoder for
  1195. western locales on both Solaris and Win32. A program's dependence on
  1196. ISO8859_1 might not be apparent if the program was not tested under a
  1197. non-western locale. 
  1198.  
  1199. JDK software running on Win32 machines uses Cp1252 (Windows Latin-1) as 
  1200. the default encoding for western locales. Cp1252 does not implement a 
  1201. reversible byte/character translation. It may appear to some 
  1202. programmers that 1.1.7 introduces an incompatibiity. The real problem 
  1203. is a programming technique that unintentionally relies on the features 
  1204. of specific locales.
  1205.  
  1206.  
  1207. =======================================================================
  1208.               DEPLOYING JAVA APPLICATIONS
  1209. =======================================================================
  1210.  
  1211. A Java application, unlike a Java applet, cannot rely on a web browser
  1212. for installation and runtime services. When you deploy a Java
  1213. application, your software bundle will probably consist of the
  1214. following parts:
  1215.  
  1216.       * Your own class, resource, and data files.
  1217.  
  1218.       * A runtime environment.
  1219.  
  1220.       * An installation procedure or program.
  1221.  
  1222. The first item, you already have, of course. The remainder of this
  1223. section covers the other two items.
  1224.  
  1225. -----------------------------------------------------------------------
  1226. RUNTIME ENVIRONMENT
  1227. -----------------------------------------------------------------------
  1228. To run your application, a user needs a Java virtual machine, the Java
  1229. platform core classes, and various support programs and files. This
  1230. collection of software is known as a runtime environment.
  1231.  
  1232. The JDK software serves as a runtime environment. However, you probably
  1233. can't assume your users have the JDK software installed, and your JDK
  1234. software license doesn't allow you to redistribute JDK software files.
  1235.  
  1236. JavaSoft provides a free, redistributable runtime environment called
  1237. the Java Runtime Environment. Versions of this are are available for
  1238. all platforms that run the JDK software. The Java Runtime Environment
  1239. is available for download at: 
  1240.  
  1241.     http://java.sun.com/products/jdk/1.1/jre/
  1242.  
  1243. The Win32 versions comes with a built-in installation program suitable
  1244. for end-users. Solaris versions require the developer to provide
  1245. installation support.
  1246.  
  1247. The Java Runtime Environment for Win32 is available both with and
  1248. without international support. The non-international version is much
  1249. smaller, but is suitable only for English-speaking users. 
  1250.  
  1251. JavaSoft is not the only supplier of runtime software for Java
  1252. programs. If you use a third-party runtime, you should make sure it is
  1253. fully compatible with the Java Runtime Environment.
  1254.  
  1255. For information on third-party runtime environments, see:
  1256.  
  1257.     http://java.sun.com/cgi-bin/java-ports.cgi
  1258.  
  1259.  
  1260. -----------------------------------------------------------------------
  1261. INSTALLATION
  1262. -----------------------------------------------------------------------
  1263. The final step in the deployment process occurs when the software is
  1264. installed on individual user system. Installation consists of copying
  1265. software onto the user's system, then configuring the user's system to
  1266. support that software.
  1267.  
  1268. This step includes installing and configuring the runtime environment.
  1269. If you use the Java Runtime Environment, you must make sure that your
  1270. installation procedure never overwrites an existing installation,
  1271. unless the existing Java Runtime Environment is an older version.
  1272.  
  1273. The Win32 version of the Java Runtime Environment is distributed as a
  1274. self-installing executable. A simple way to redistribute the Java
  1275. Runtime Environment is to include this executable in your software
  1276. bundle. You can then have your installation program run the executable,
  1277. or simply instruct the user to install the Java Runtime Environment
  1278. before installing the rest of your bundle.
  1279.  
  1280. The Win32 installation program records program information in the
  1281. Windows Registry. This registry information includes the software
  1282. version, which you should compare with the Java Runtime Environment
  1283. version in your software bundle. For more information, refer to the the
  1284. Java Runtime Environment Notes for Developers at:
  1285.  
  1286.     http://java.sun.com/products/jdk/1.1/runtime.html
  1287.  
  1288. A more sophisticated approach is to install the Java Runtime
  1289. Environment on your own system, then copy the files you need into your
  1290. own installation set. If you choose this approach, you must include all
  1291. files described as "required" in the Java Runtime Environment README.
  1292. The Java Runtime Environment software can only be redistributed if all
  1293. "required" files are included. See the LICENSE file for specifics.
  1294.  
  1295. If you use this approach, do not try to emulate the installation steps
  1296. performed by the Java Runtime Environment installer. You might "break"
  1297. an existing Java Runtime Environment installation by missing a new or
  1298. undocumented installation step. Instead, you should include the Java
  1299. Runtime Environment files in your own application directory. In effect,
  1300. your application has its own "private" copy of the Java Runtime
  1301. Environment.
  1302.  
  1303. If your application uses the networking classes, it may not run
  1304. reliably under Winsock 1.1. (See "Possible Problems with Winsock,"
  1305. under "Installing and Running the JDK Software," above.) If your
  1306. networking application must support Windows 95, which comes with
  1307. Winsock 1.1, you will want to include a Winsock 2.0 install in your
  1308. installation procedure. (Windows NT 4.0 and Windows 98 come with
  1309. Winsock 2.0.) To provide Winsock 2.0, you need the Microsoft Windows
  1310. Sockets 2.0 Software Development Kit. This free software can be
  1311. downloaded from the following addresses:
  1312.  
  1313.     http://www.microsoft.com/win32dev/netwrk/winsock2/ws295sdk.html
  1314.     http://www.microsoft.com/windows95/info/ws2.htm
  1315.     ftp://ftp.microsoft.com/bussys/WinSock/winsock2/
  1316.  
  1317. -----------------------------------------------------------------------
  1318. Copyright ⌐ 1996, 1997, 1998 Sun Microsystems, Inc.
  1319. 901 San Antonio Rd., Palo Alto, CA 94303 USA
  1320. All rights reserved.
  1321.  
  1322.