hide random home http://www.javasoft.com/JDK-1.0/faq.html (PC Press Internet CD, 03/1996)

Java(tm) Developers Kit

Version 1.0

Frequently Asked Questions - Java(tm) Developers Kit


Availability/downloading

What's included in the Java Developers Kit (JDK)?
It has several components:
Note that this release does not include a web browser.

What has changed since the Beta 2 release?
See the list of changes, which also includes a pointer to changes since the Alpha 3 release.

On which platforms can I run the JDK?
The 1.0 JDK is currently available on:

When will a 1.0-compatible HotJava(tm) browser be available?
We're anticipating a beta HotJava browser in the first quarter of 1996.

Is the 1.0 JDK release free?
Yes, the terms for use are fundamentally the same as for the earlier beta and alpha releases. See the COPYRIGHT file included with the release for copyright and license information.

How can I download a copy?
The best way to get a copy is to visit the downloading instructions page for your platform:
In addition to a link for downloading, these pages provide useful instructions for unpacking, installing, and troubleshooting your JDK copy.


Using the JDK

Can I view Alpha 3 applets using the JDK?
No. The JDK Applet Viewer only understands 1.0 (and beta) applets. Java-enabled browsers likewise cannot handle alpha applets. We recommend that you upgrade and recompile all alpha applets for the 1.0 Java Applet API.

Can I view 1.0 (JDK) applets using the Alpha 3 HotJava browser?
In general, no. The Alpha 3 HotJava browser will not understand some parts of the 1.0 Java Applet API and will not recognize the newer <applet> tag.

Will applets developed using the JDK work in Netscape Navigator?
The 1.0 JDK release presents the reference implementation of the Java Applet API. All Java-enabled browsers, including Java-enabled versions of Netscape Navigator, will support the 1.0 Java Applet API.

Can all Netscape 2.0 versions run Java applets?
Netscape 2.0 supports Java applets on many but not all platforms. For details, see Netscape's release notes for your platform.

Can I use the Sun-specific classes in the JDK?
Yes and no. Sun-specific classes like NetworkClient and NetworkServer were included in the JDK release to provide support for other Sun-specific classes, but they are not otherwise available for general use (i.e., no documentation and no source is provided). In general, the sun.* classes aren't guaranteed to be upward compatible to new versions, nor even to exist in future releases.

In terms of what's safe to use, the java.* classes represent the Java Applet API, which will be documented by us, will be upwardly compatible, and will be supported by all Java-enabled browsers, including Netscape.

Can my 1.0 applet make connections to places other than the applet's source?
No -- and this is a change from early alpha applets. The default security policy for Java-enabled browsers is to prohibit such connections. The HotJava browser, however, will support more flexible security modes. For further details, see our security FAQ.

Can I write stand-alone Java applications using the JDK release?
Yes. The JDK contains the Java Language Compiler and Runtime, which together allow you to compile and run stand-alone Java applications.

Can I include AWT components in applets?
Yes. Starting with beta releases, the Java Applet API has placed applets as a subclass of the AWT Panel class. In other words, applets themselves are components and can contain other AWT components.

Is there a new event model in the 1.0 JDK?
Yes. In beta and earlier versions of the JDK, programs using the AWT couldn't intercept events that were sent to native widgets. Now they can. In theory, an AWT program can subclass a component, say a TextField, override its handleEvent() method, and can then:
  1. Pass the event along unmodified, by returning false.
  2. Pass the event along with modifications by modifying the event and then returning false.
  3. Consume the event without passing it on by returning true.

If a component's handleEvent() method returns false, the event keeps traveling up the containment hierarchy. If none of the component's parents return true from their handleEvent() methods, the event is then sent to the peer which will then consume the event.

For 1.0, however, the only events that an AWT program can filter are keyboard events. Future versions of the JDK will allow the AWT to filter all events.

Note also that if an applet's TextFields don't seem to be getting any keyboard input, it's because the applet is incorrectly written to return "true" from it's handleEvent() method. This causes the event not to be sent to the actual TextField.

Can I link C programs into my Java code?
You can dynamically link C programs into applications written in the Java Programming Language, but not into applets. This restriction is another facet of Java security.

How do I debug my applets?
This release includes an early Java Debugger (JDB). Check out the Java Tools Reference Page and the Java Debugging Tutorial Page for more information on debugging.

How come single-stepping through a method doesn't always go to the right place?
The debugger is the first client of the compiler's line tables, and that line number information needs refinement. The javap command has been enhanced to report the line number and local variable tables (use the -l option), and you can see first hand one of the areas we'll be fixing for future versions.


Learning more about it

Where is the language reference manual?
An October 30, 1995 draft is available via FTP in compressed Postscript ( ~265K ) or zipped Postscript ( ~190K ) format.

Where is the API documentation?
Our API documentation is available at our web site in the API Packages Reference. You can also download documentation packages so that you don't have to browse externally for the information; for details see FTP Documents.

Why does 1.0 use the APPLET tag rather than the old alpha APP tag?
We want to be SGML compliant, so that the APPLET tag can become part of the HTML standard. The APP tag had an unbounded number of attributes and was therefore not acceptable.


Last Updated: 05 Jan 1996

Java Developers Kit