Frequently Asked Questions About Java

   
 
 

 


This collection of frequently asked questions (FAQ) provides brief answers to many common questions about the Sun Java Platform, programming language, and the Java 2 Platform. It also provides links to more detailed information available from this web site. Please check here for answers before posting a question to one of the Java technology-related newsgroups or before sending email to any of the addresses at Java Software e-mail addresses.

A. Getting started with Java:
availability, latest releases, ports, downloading, installing, Java technology

B. Getting information and staying in touch:
the Java name, documentation of all sorts, newsgroups, mailing lists, Java class courses, bug reports

C. Java technology-enabled Netscape:
which versions, alpha/beta applets

D. Marketing, licensing, and planning:
licensing, logos, plans

E. Troubleshooting:
error messages

We try to make as much information as possible available through our Web site, Java. If you have trouble finding the information you need there, please let us know.

 



Return to Top

A. Getting started with Java Technology:

A1. What releases of Java technology are currently available? What do they contain?
A2. What platforms is the JDK software available on?
A3. Should I use the Production Release or Reference Implementation of the Solaris JDK software and JRE?
A4. What about a version for my favorite platform? When can I get it?
A5. How do I download Java technology and/or JDK software? How do I install it?
A6. Where can I find information about HotJava?
A7. How can I get started with programming in Java?
A8. Do I need special server software to use applets?
A9. Who is licensing Java technology?
A10. Is JavaScript available? How do I find out more about it?
A11. What are the security problems I've heard about JavaScript scripts?
A12. I can't find the API documentation on any classes in the sun.* packages.
A13. Why developers should not write programs that call 'sun' packages
A14. Where can I get the Java programming language source code?
A15. What is the Java Version/Naming convention?

A1. What releases of Java technology are currently available? What do they contain?

The Java programming language is currently shipping from Sun Microsystems, Inc. as the Java 2 SDK and Java 2 Runtime Environment. All Sun releases of the Java 2 Platform software are available from the Java 2 Platform software home page.

Each release of the Java 2 SDK, Standard Edition contains:

 

  • Java Compiler
  • Java Virtual Machine*
  • Java Class Libraries
  • Java AppletViewer
  • Java Debugger and other tools
  • Documentation (in a separate download bundle)

To run Java 1.0 applets, use Netscape Navigator 3.x or other browsers that support Java applets. To run Java 1.1.x applets, use HotJava 1.x or Netscape Navigator 4.x or other browsers that support the newest version of the Java API.

A2.What platforms is the Java-technology software available on?

Sun provides ports of the Java 2 Platform for Windows 95, Windows 98, Windows NT, Windows 2000, Solaris-SPARC, Solaris-Intel, and Linux.

A3. Should I use the Production Release or Reference Implementation of the Solaris JDK software and JRE?

The following applies to versions prior to 1.3.0. Starting with J2SE 1.3.0, only the production release exists. There is no Solaris reference implementation.

Reference Implementation - Those who want the latest Solaris implementation of the JDK software or JRE release and do not require optimized performance can obtain the reference implementations:

The Solaris binaries are built from the same source code as the Windows version. The 1.1 reference implementations for Solaris do not include a JIT. Reference implementations are distributed as (essentially) a tar file which may be unpacked in any directory, so that root permission is not required for installation.

Production Release - In contrast, customers whose applications/applets will be released as products, and who need a Solaris JRE or JDK software with optimized performance, should use the Solaris production releases:

The production releases are based on the reference implementation of the same version number, and include a JIT compiler, additional performance tuning, and bug fixes. The production releases are installed as standard Solaris packages, which require root permission for installation.

Varying levels of technical support are available for both the Reference and Production releases through the standard Solaris support channels.

For a further overview of differences between these Solaris JDK software offerings, see JDK 1.1 for Solaris - Binary Products Overview and the FAQ for the JDK Solaris Production Release.

 

A4. What about a version for my favorite platform? When can I get it?

These are extremely popular and important questions. What we can currently say is:

 

    Amiga, NeXT, OS/2, Windows 3.1, Windows 32s, Macintosh, ...
We've provided our source code to make third-party ports like these possible, but we are not officially overseeing or tracking them. For more information, please check out:
Platforms Supporting Java technology

A5. How do I download Java technology and/or Java 2 SDK software? How do I install it?

You can get our releases either with a World Wide Web (WWW) browser or by anonymous ftp. For details, including installation instructions, visit:

The Java 2 Platform web site
Choose the software you want, and go from there.

A6. Where can I find information about HotJava browser?

The current version of HotJava browser is 1.1Beta1 and is available at HotJava. This page has links to an email address for comments and to HotJava browser known bugs.

A7. How can I get started programming in the Java programming language?

See our page which can guide you in the right direction:

Getting Started with Java technology.
A8. Do I need special server software to use applets?

No. Java applets may be served by any HTTP server. On the server side they are handled the same as any other file, such as a text, image, or sound file. All the special action happens when the applet class files are interpreted on the client side by a Java technology-enabled browser, such as HotJava browser or 1.x or Netscape 3.x/4.x.

A9. Who is licensing Java technology?

See our "Who's Licensing Java?" page:

 

Who's Licensing Java?

A10. Is JavaScript technology available? How do I find out more about it?

The initial version of the JavaScript technology is available in current releases of Netscape Navigator 3.x. For more information, including a pointer to the full press release, see the Netscape JavaScript technology page:

A11. What are the security problems I've heard about JavaScript technology scripts?

JavaScript technology is a scripting language used with Netscape Navigator. There have been reports of privacy problems with JavaScript technology, and Netscape is committed to addressing those concerns. JavaScript technology cannot be used to invoke Java applets. The privacy problems reported with JavaScript technology are not present in Java applets.

A12. I can't find the API documentation on any classes in the sun.* packages. Where is it?

The short answer is that we provide documentation only for the public classes in java.*. We do not provide documentation for sun.* because those are the Sun-specific implementation, and specifically not part of the Java technology API standard, and are therefore subject to change without notice.

In general, we don't provide javadoc documentation for sun.* classes in order to discourage developers from writing programs that use them. For further explanation, see the next question.

However, if you must have it, the documentation for sun.* is available in the doc comments in the community source code release available separately, mentioned in question A14. For example, the doc comments for sun.net are in the source files located at:

   /src/share/sun/sun/net/*.java
This source code release does not include javadoc-generated documentation. You would have to generate those docs yourself using javadoc.

A13. Why developers should not write programs that call 'sun' packages

Java Software supports into the future only classes in java.* packages, not sun.* packages. In general, API in sun.* is subject to change at any time without notice. For more details, see the article Why Developers Should Not Write Programs That Call 'sun' Packages.

A14. Where can I get the Java programming language source code?

Java Software has two separate bundles of source code that you can obtain at no charge:

  • The Java 2 SDK, Standard Edition itself contains a file called src.zip that contains the source code for the public classes in the java package. Because this does not contain sun.* classes, you cannot do a complete build of the Java technology from these source files. These source files are for your information, to supplement the documentation, so you can see how Java technology works.
  • The full source code release is available from us by going to the Community Source Code Licensing web site..

 



Return to Top

B. Getting information and staying in touch:

B1. Where did the Java name come from? What does it stand for?
B2. Can the Java software team keep me informed of latest developments?
B3. What newsgroups carry information about Java technology?
B4. What email addresses are available?
B5. What documentation is available? In what formats? How can I get it?
B6. Can you send me information by regular mail or by email?
B7. Can I be an alpha or beta tester?
B8. Are Java programming language courses available? Where? At what price?
B9. How do I file bug reports or feature suggestions?

B1. Where did the Java name come from? What does it stand for?

The name was chosen during one of several brainstorming sessions held by the Java software team. We were aiming to come up with a name that evoked the essence of the technology -- liveliness, animation, speed, interactivity, and more. "Java" was chosen from among many, many suggestions. The name is not an acronym, but rather a reminder of that hot, aromatic stuff that many programmers like to drink lots of.

B2. Can the Java software team keep me informed of latest developments?

We no longer keep a list of people to inform; when we started that, we never expected that so many people would be writing to us every day! If you'd like to keep informed, the best way is to visit our Web site

 

Java Software Home Page

periodically and participate in the Java technology-related newsgroups. Note in particular that our "What's New" page:

 

What's New at Java Software

provides an overview of the most recent developments, press releases, and so on concerning Java technology.

B3. What newsgroups carry information about Java technology?

Several newsgroups are currently available, including:

     comp.lang.java 
     comp.lang.java.advocacy 
     comp.lang.java.announce 
     comp.lang.java.api 
     comp.lang.java.beans 
     comp.lang.java.databases 
     comp.lang.java.gui 
     comp.lang.java.help 
     comp.lang.java.machine 
     comp.lang.java.misc 
     comp.lang.java.programmer 
     comp.lang.java.security 
     comp.lang.java.setup 
     comp.lang.java.softwaretools 
     comp.lang.java.tech 
     comp.lang.javascript 

B4. What email addresses are available?

Information about our internal e-mail addresses is available at

 

Java Software e-mail addresses.

B5. What documentation is available? In what formats? How can I get it?

We provide a wide range of documentation (white papers, API specifications, programmer's guide, and more), reachable from our documentation page:

 

Documentation Index

Most of our documents are available in HTML, PostScript and PDF formats.

B6. Can you send me information by regular mail or by email?

Sorry, but we're mainly set up to distribute information through our Web site ( Java) and ftp site. We want to get as much information out and available as possible, but we can only handle the volume via these customer-initiated mechanisms.

B7. Can I be an alpha or beta tester?

Yes, that's essentially what you're doing when you use our beta release software and send in bug reports. We generally don't have separate formal programs for early-release testing.

B8. Are Java programming language courses available? Where? At what price?

SunService is providing Java programming language courses at sites around the world; see

 

Sun Educational Services (http://www.sun.com/sunservice/suned/)

B9. How do I file bug reports or feature suggestions?

See instructions on our bug report page:

 

Submitting a Bug or Feature Request

We will not be able to acknowledge each report individually. Please accept our gratitude in advance -- your feedback is crucial to our work.

 



Return to Top

C. Java technology-enabled Netscape:

C1. Can all Netscape 3.x versions run Java applets?
C2. Can you help me with using Java technology in Netscape?

C1. Can all Netscape 3.x versions run Java applets?

Netscape 3.x supports Java 1.0 applets on many but not all platforms. See the release notes for your platform at:

 

Netscape Navigator

Java technology-enabled versions of Netscape 3.x will only run beta and 1.0.2 applets, which can be written with the 1.0.2 Java Development Kit (JDK). Be aware that there are many Web pages with alpha applets, which Netscape 3.x will not handle. You can distinguish between alpha and beta applets by looking at the html source for a page: alpha applets use the <app> tag, whereas beta applets use the <applet> tag.

Hotjava browser and Java technology-enabled versions of Netscape 4.x will run 1.1.x applets, which can be written in with JDK 1.1.x.

C2. Can you help me with using Java technology in Netscape?

For questions that specifically concern installation, troubleshooting, feature availability, and how to do something specific with applets in the Netscape browser, it's best to ask Netscape directly.


 



Return to Top

D. Marketing, licensing, and planning:

D1. Is Java technology free? Where can I get information on licensing?
D2. Can I use Sun's Java technology logo?
D3. What are your plans for XXX functionality? Why haven't you done YYY?
D4. Can you comment on company ZZZ's plans for licensing and using Java technology?
D5. How can I invest in Java on the stock market?

D1. Is Java technology free? Where can I get information on licensing?

The Java Development Kit (JDK) is free to download and use for commercial programming, but not to re-distribute. We have guidelines on our web site for using and/or licensing Java technology; see

 

Licensing Information

 

D2. Can I use Sun's Java technology logo?

Sun does not authorize the use of the Java logo. For more information about this and other special developer logos, please see:

 

Java Trademark Guidelines

D3. What are your plans for XXX functionality? Why haven't you done YYY?

We welcome all input regarding Java technology -- we will read and consider it. We're keeping many more options in mind than appear in our current releases. However, because we are focusing on moving toward our next release, we have time to answer only a small number of such questions. See:

Contacting Java Software

D4. Can you comment on company ZZZ's plans for licensing and using Java technology?

No, we need to let other companies speak for themselves. We can only refer you to official press releases. For pointers to recent press releases, see our "What's New" page:

 

What's New at Java Software

D5. How can I invest in Java technology on the stock market?

Java technology is a product of Sun Microsystems, Inc., which is traded on NASDAQ under the symbol SUNW.

 



Return to Top

E. Troubleshooting:

E1. Will Java technology work with DOS file name limitations (8.3)?
E2. javac: Superclass java.applet.Applet of class HelloWorld not found.
E3. How do I stop the copyright notice from appearing every time I start the Windows NT/95 version of appletviewer?
E4. My virus-checker program claims to have found a virus in some of the JDK software files. What's going on?
E5. Why do I get a NoClassDefFoundError when I try to run my HelloWorld app?
E6. Why are Java applets and other interactive content behaving differently in Microsoft® Internet Explorer?

E1. Will Java technology work with DOS file name limitations (8.3)?

Java technology relies on files with longer names than the old DOS limits, so if you are running older (pre-Microsoft Windows 95) versions of DOS, Java technology will not work. If you are running a version of DOS (such as the one that comes with Windows 95) that allows long file names, you should not have any problems.

Note that older versions of WinZip do not support long file names, even if the installed version of DOS does. You can get a free upgrade of WinZip with support for long file names from their web site.

E2. javac: Superclass java.applet.Applet of class HelloWorld not found.

The examples in the programmer's guide have been updated to conform to the new applet API in our 1.0.2 Java Development Kit (JDK). "Superclass not found" error messages are typical if you try to compile Java 1.0 beta code with an alpha version of javac. The recommended fix is to download a copy of the JDK software, and do all further development with that.

Another potential source of this error message is incorrect capitalization of either the file name or the class name in in the file. The Java technology system is case-sensitive, so a HelloWorld class is different from a helloWorld class, and so on.

E3. How do I stop the copyright notice from appearing every time I start the Windows NT/95 version of appletviewer?

The appletviewer looks for a .hotjava directory inside your home directory to determine whether you are starting it for the first time. If the directory is not found, the appletviewer will pop up the copyright notice. The workaround is to manually create the .hotjava directory in your home directory. The following paragraphs explain how to do this.

The appletviewer is written to recognize three MS-DOS environment variables for the location of a user home directory: it uses either HOME or the combination of HOMEDRIVE and HOMEPATH. Under Windows NT3.51, the HOMEDRIVE and HOMEPATH environment variables are set automatically. Under Windows 95, you will need to set the HOME environment variable to point to an existing directory.

Once your home directory is set, all you need to do for Windows NT3.51 is to create the .hotjava directory inside of it:

        mkdir %HOMEDRIVE%%HOMEPATH%\.hotjava

In Windows 95, the easiest method is to edit the AUTOEXEC.BAT file, adding the following line:

 

        set HOME=C:\

Then save the file and reboot, so that the change to take effect. Once your computer has rebooted, open a DOS window and execute the following command:

 

        mkdir %HOME%.hotjava

E4. My virus-checker program claims to have found a virus in some of the JDK software files. What's going on?

Although your virus checker may have discovered a real virus, you should consider the possibility that a false detection has occurred. Virus-checker programs can mistakenly find "viruses" in parts of the JDK software where there really is no virus. This can happen when the virus checker detects a bit pattern in a class file that, by chance, matches a bit pattern in a virus. The types of viruses that can infect .exe or .com files typically cannot infect class files or jar files.

E5. Why do I get a NoClassDefFoundError when I try to run my HelloWorld app?

The problem is probably that your HelloWorld.class file is not on your class path. The class path is the list of one or more directories in which the java application launcher will look for the .class files comprising your application. So, how to specify the class path?

If your program depends only on the J2SE classes, you should not need to use classpath, because those classes are automatically on the classpath. If your program depends on other classes, you need to set classpath to those classes. In that case, it is preferable to use the -classpath option rather than the CLASSPATH environment variable, as the -classpath option enables each application to have its own classpath. For more details, see:

 

Please send questions to the Compiling forum where others can help you.

The following assumes you're running Windows 95/98/NT/2000.

There is a CLASSPATH environment variable. You can see which environment variables are set on your machine by running 'set' at the DOS prompt. If the CLASSPATH variable is set, then its value is your class path. If the CLASSPATH variable is NOT set, then the default class path is the current directory (i.e. whatever directory you run 'java HelloWorld' from).

So if you are trying to run 'java HelloWorld' from the directory in which the HelloWorld.class file is in, and you get the "can't find" error, it's probably an indication that you have the CLASSPATH environment variable set. Try unsetting the CLASSPATH variable: 'set CLASSPATH=' (i.e. setting it to no value is the same as unsetting it). Then try running your application again. Because the CLASSPATH variable isn't set, the class path should default to the correct directory, and your app should launch.

Altenatively, you could set the CLASSPATH environment variable to point to the location of your HelloWorld.class file. However, you'd run into the same "can't find" error if you then tried to run another application located in another directory.

You can also force the class path to be a particular value by using the -classpath option: 'java -classpath C:\myprograms\ HelloWorld'

See class path information in the Java 2 tools documentation for more information.

E6. Why are Java applets and other interactive content behaving differently in Microsoft Internet Explorer?

A recent update to Microsoft Internet Explorer included a change that alters the way users interact with applets and other interactive content in the browser. With this change, users are first required to manually activate (click on) the applet's user interface, before the user can interact with the content. If the page has multiple interactive components, users are required to activate each user interface individually.

It is possible to get the old behavior back. Microsoft has published a general solution for updating web pages that restores the user experience. For more information, see the Microsoft article Activating ActiveX Controls. Working with Microsoft, Sun has developed an Internet Explorer deployment guide customized for Java developers, which provides examples on how to leverage the Microsoft work around, and minimize user impact of the Internet Explorer update.

*As used on this web site, the terms "Java virtual machine" or "JVM" mean a virtual machine for the Java platform.
Left Curve
Java SDKs and Tools
Right Curve
Left Curve
Java Resources
Right Curve
JavaOne Banner Java 8 banner (182)