|Java - Developer Kits|
|JDK - Java Developer's Kit (Free)|
|J2EE Enterprise - Servlets and also called "Java 2"|
|Java for Windows.|
|JDK 1.3 (now called "Java 2")|
|JDK 1.1.7 from IBM. As of 4/99, this supposedly outperformed both the Sun and the Microsoft 1.1 JVM's by 20% on most benchmarks. Uses similar technology to Sun's HotSpot, but is for Java 1.1, whereas HotSpot is for Java 1.2/1.3 (aka Java 2).|
|Java for MacOS|
|JDK 1.1.8 on "Classic" MacOS|
|JDK 1.3 for MacOS X|
|JDK 1.3 from Sun|
|JDK 1.4 from Sun. Beta.|
|Other Linux versions|
|Netscape Navigator/Communicator (Mozilla).|
Version 6 supports JDK 1.3. Version 4.06 and later supports JDK 1.1.
|Microsoft Internet Explorer.|
Supports JDK 1.1.
|HotJava from Sun.|
Supports JDK 1.1.
|Java Runtime Environment (JRE) for Windows 95/98/NT and Solaris. This lets you run Java but not compile it (javac), generate documentation (javadoc), etc. A smaller footprint for delivery-only platforms.|
|Java Plugin (formerly "Activator"). Lets you install Sun's Java VM in Netscape or IE, but you can't use the standard |
|Java Servlets. An efficient, flexible, and portable alternative to CGI. (Also see the Apache Tomcat usage page).|
|JavaServer Pages (JSP) Portable, powerful alternative to ASP or ColdFusion. (Also see the Apache Tomcat usage page).|
Example Java Applets and href="/tecnico/Tecnico/corewebprogramming.com">Core Web Programming ; all are freely available for unrestricted use.
|A Debugging Web Server. This separate page gives an HTTP server in Java that echos back all headers sent to it. Useful when doing CGI programming, for debugging FORMs and verifying headers sent by browsers and other clients.|
|Images as Components Please note that these Java classes work around AWT programming limitations in Java 1.02 and 1.1. With Swing, much better programming options are available. For that, please see my tutorial on Swing programming. ImageLabel.java A Java class that creates a Component containing an image. Like the Label class, it can get positioned by the layout manager and will get repainted automatically.|
|ImageButton.java ||GraphicsUtil. A Java class that adds pen width arguments to the drawing methods of java.awt.Graphics. Also creates drawCircle and fillCircle methods, adds optional Color arguments to each of the drawing methods, and adds an optional Font argument to drawString and drawChars. Documentation is at GraphicsUtil.html, and the Java source is at GraphicsUtil.java. A simple on-line demo can be viewed at GraphicsUtilDemo.html.
||CGI Programming in Java|
This separate page summarizes the use of Java for CGI programming: how to use Java applets to talk to CGI programs via either GET or POST, and how to write CGI programs in Java. Includes on-line examples, a CGI form parser in Java, and an HTTP cookie value parser in Java.
||Slider. A horizontal slider combining a Scrollbar and a TextField. You can drag the scrollbar or type into the TextField; either way, both stay in sync. Works the same on both Java 1.0 and 1.1, despite differences in how Scrollbar interprets the max value in the two cases. Also tries to work around some Windows 95/NT Scrollbar bugs. The source code is available in Slider.java, with documentation at Slider.html. For an on-line example, see SliderApplet.html.
||Mouse and Keyboard Event Reporter An applet that reports all mouse and keyboard events in a textfield. An on-line demo is at Events.html, with source code at Events.java (which uses EventPanel.java).
||Whiteboard A very simple whiteboard that illustrates Java 1.1 event handling by letting you type text and draw freehand. An on-line demo is at Whiteboard2.html, with Java source at Whiteboard2.java (which uses SimpleWhiteboard2.java). Java 1.02 version is available at Whiteboard.html, with Java source at Whiteboard.java (which uses SimpleWhiteboard.java).
||Java 1.1 Key Listeners A demonstration of Java 1.1 event-handling; two text areas where you can type into either and get the same result in both. An on-line demo (Java 1.1 browsers only) is at Mirror.html, with source code at Mirror.java.
||Java 1.1 Inner Classes and Mouse Events A simple demo of inner classes to handle mouse events in Java 1.1 (click to draw circles). An on-line demo (Java 1.1 browsers only) is at Circles.html, with source code at Circles.java.
||Lightweight Components in Java 1.1 A demonstration of the fact that lightweight components in Java 1.1 can be transparent. An on-line demo (Java 1.1 browsers only) is at BetterCircleTest2.html (compare to the opaque heavyweight components at CircleTest2.html). Source code is at BetterCircleTest2.java (which uses BetterCircle.java). Source for the heavyweight version is at CircleTest2.java (which uses Circle.java).
||Lightweight Containers in Java 1.1 A demonstration of the fact that lightweight containers in Java 1.1 can be transparent. An on-line demo (Java 1.1 browsers only) is at LightPanel.html (compare to the opaque heavyweight panel at HeavyPanel.html). Source code is at LightPanel.java (source for the opaque heavyweight panel is at HeavyPanel.java).
||Frames that Can Be Closed Java Frames that actually (gasp) close when the user instructs them to. I use these as the starting points for all my graphical applications.
||Java 1.02 version: QuittableFrame.java
||Java 1.1 version: CloseableFrame.java
||ScrollPanes in Java 1.1 A simple example of a ScrollPane: ScrollPaneTest.java. Built on CloseableFrame.java.
||Creating Menus in Frames An illustration of pulldown menus: ColorMenu.java. Built on QuittableFrame.java.
||Serializing Windows in Java 1.1 Creates a Frame that you can stretch, move around, and add circles to by clicking the mouse. If you save it to disk, then running the application in a later session automatically restores it to previous configuration. Source is at SavedFrame.java, which uses CirclePanel.java and is built on CloseableFrame.java.
||Rolling Your Own Popup Menus in Java 1.02 A way to create tolerable (but not great) popup menus in Java 1.02 by extending ||Using FileDialog An example that uses a FileDialog to select a file name, then loads the contents of the file into a TextArea. Source is at DisplayFile.java, and is built on QuittableFrame.java.
||Network Programming Note that there are PostScript reference sheets which provide explanation that these examples illustrate.
||GetURL, an application that takes a URL as input and retrieves the file. Talks directly to the HTTP server rather than using URLConnection to illustrate sockets.
||Expn, an application that finds info on an email address. Given email@example.com connects to the SMTP server on apl.jhu.edu and issues "expn hall". A simple illustration of sockets in Java.
||ShowHTML. A Netscape3-specific way of generating HTML on-the-fly or reading it from a stream and sending it to the browser. Defines showPage(applet, htmlString) and showPage(applet, htmlString, frameName) methods. Source is available at apl.jhu.edu/~hall/java/CGI/ShowHTML.java, and a test page that illustrates it is at ./TestHTML.html.
||Exec. A class that simplifies executing remote commands from Java applications. Source code is at Exec.java, with documentation at Exec.html.
||JavaStub. An application that simplifies prototyping of applets by generating stub files for you. Given a partial filename like HelloWorld, it generates a mostly blank but working class HelloWorld.java which can be run as either an applet or an application. It also generates HelloWorld.html with an APPLET statement that loads HelloWorld.class. Documentation is at apl.jhu.edu/~hall/java/JavaStub.html, and the code is at ./JavaStub.java and ./JavaStub.class.
||NQueens. Solves the N-Queens problem for N from 4 to 60 in linear time (constant time per queen). The N-Queens problem involves placing N tokens (chess queens) on an NxN grid such that none share a row, column, or diagonal. On an 8x8 grid this amounts to placing 8 queens on a chess board such that none threaten each other. Although this problem is commonly used to illustrate search techniques, there is a common misconception that search is required to find a solution (although search is required to find all solutions). Algorithm adapted from ACM SIGART Bulletin . Run it by loading apl.jhu.edu/~hall/java/NQueens.html. The source code is at ./NQueens.java.
||TrackerUtil. A small class that uses MediaTracker to let you use a single method call to load one or more images, waiting until they are done loading before continuing. Documentation is at TrackerUtil.html, and the code is at TrackerUtil.java.
||Que es Java ?
||Herramientas de Programacion
||Applets y Clases
||Sitios Importantes sobre Java
||Seguridad y Eficiencia