Brad Appleton's Java Links

Last update: Thu Feb 26 16:29:24 CST 1998

Brad Appleton
Software Tools Developer

244 links to Java on the World Wide Web.

Java Resources and Directories

SunSite's Java Announcements Archive
SunSoft's Java page
Cetus Links: Java
WWW Virtual Library: Java
Univ. of Toronto Java Development Centre
Baldwin's Java Programming Pages
Cafe Au Lait
Cay Horstmann's Home Page
Club Java: sponsored by Virtual Rendezvous
CSG Java Links
Daniels JAVA Links
Focus on Java, The Mining Company
Gamelan: Earthweb's Java Directory
Gert Florijn's Java links
IBM AlphaWorks Java Software Center
Icon Computing: Java Links of Interest
Java Application Site
the Java Boutique
The Java Centre, UK
the Java Developer: Resources
JavaUniverse Developer - Workspace
Java Developer Links, NASA CCS
Java Links
Java Pages
Java Programming Resources
the Java Repository
Java Resource Links
Java Resource List from SunSoft
JARS.COM - The Java Review Service
the Java URN (User's Resource Network)
Java/JavaScript Resources on the Internet
JFOX - Java Financial Object Xchange
Krakatau is a resource dedicated to bringing Java closer to the non-technical Web user. We've collected some of the best Java applets from around the world for Web designers of all abilities to include in their HTML documents. Each applet includes full documentation and step-by-step instructions detailing how to use it in your Web page.
Markus Reith's Java Developer's Page
Que Java/JavaScript Resource Center
Queensland Java Resources
Sam Pullara's Java Page
Visix's Java Developer Resources
Whang's Java Resources List

back to Java

Java Documentation

JavaSoft Documentation Index
JDK 1.1 Documentation
JDBC database access API.
JDBC Guide
Java FAQ Archives
Java in a Nutshell Online Quickref for JDK 1.1 Beta 3
Java IDL
Java Package Quick Reference, NASA CCS
Java Programmer's FAQ FAQ
Online Java Documentation
PersonalJava 1.0 Spec
Java Quick-Ref, Que book online
The Java Bug Report
The Java Bug Report, is a comprehensive on-line resource for Java programmers, implementors, conformance testers and educators. The primary purpose of the Report is to make available, to the Java community at large, unofficial errata for the documents that specify the Java platform: the language, the Java virtual machine, and the APIs. In addition, the Report tracks bugs in the Sun Java Developer Kit, the most widely used implementation of the Java platform.

back to Java

Java Training and Tutorials

Ask the JAVA Pro - Welcome!
Automatically Exploiting Implicit Parallelism in Java
Baldwin's Java Programming Tutorial
blue Java Packages
Design Patterns in Java AWT
Focus on Java - weekly newsletter
Java Development Standards, Mark Fussel
Java Language Debugging
Java Optimization Guidelines
Java Package Tutorial, NASA CCS
Java Tutorial, Chris Ferris
Java: an Introduction
Javadoc Home Page
Javadoc Doclets
You can use Javadoc doclets to customize javadoc output. A doclet is a Java program written with the Java Doclet API that specifies the content and format of the output to be generated by the javadoc tool. You can write a doclet to generate any kind of text-file output, such as HTML, SGML, XML, RTF, and MIF. JavaSoft provides only the "standard" doclet for generating HTML output with the traditional look and feel. Doclets can also be used to perform special tasks not related to producing API documentation. For example, a diagnostic doclet could be created to check that all class members of the classes on which javadoc operates have documentation comments.
Learning Java (a tutorial)
Making Sense of Java
Object Ideas' Java Tutorial
Q+A on using Java in CS Curricula
Sullivan's Learning Java Page
Thingtone's Java Workshop
Walking tour of JavaBeans
Why Java Matters, a white paper
100% Pure Java Cookbook

back to Java

Java Coding Conventions

Amby Soft Java Coding Standards
C, C++, & Java Coding Standards, NASA CCS
Draft Java Coding Standard, Doug Lea
Java Style Guide, U.S. Navy
JavaSoft Java Coding Conventions
Ottinger's Rules for Variable and Class Naming

back to Java

Java Articles, Books, and Papers

Computer Science Java Style, a hyperbook
Design by Contract for Java
Design for Open Systems in Java, Doug Lea
Java reusability
Java: The Inside story
Porting C++ to Java: Index
IntraNet NY Conference Proceedings
Java Report Online
Java in Operating Systems Courses
Using Java articles from ;login:
JavaWorld - Net News Central
JavaWorld - IDG's magazine for the Java community
Java Whitepapers from SunSoft
Java and Smalltalk syntax compared
The Java Book Pages
Java book reviews
Java Programming Books at calSur Internet
Java Page: O'Reilly & Associates
Java Reference Catalog, Prentice-Hall
Java Series, Addison-Wesley
JIT for Java vs. C++
PJW2 - 2nd International Workshop on Persistence and Java
PMPCS Books - Java
Bruce Eckel's "Thinking in Java" (online book)
Concurrent Programming in Java (online A-W book)
Java Developer's Guide (online SAMS book)
The Java Tutorial (online A-W book)
SE Using Java, 2e (online Book)
Tricks of the Java Programming Gurus (online SAMS book)

back to Java

Java Organizations and Vendors

The Java Consortium
The Java Lobby
The Java Lobby is a group of people who share a common interest in Java software development and the advancement of Java standards and software. The main purpose of the Java Lobby is to represent the needs and concerns of the Java developer and user community to the companies and organizations who have influence in the evolution of Java.
Arcadia: Java Working Group
CJUG: ChicagoLand Java User Group
IBM's Java Home
IBM's Java-related Technology
The Java Lobby
The Java Lobby is a group of people who share a common interest in Java software development and the advancement of Java standards and software. The main purpose of the Java Lobby is to represent the needs and concerns of the Java developer and user community to the companies and organizations who have influence in the evolution of Java. We encourage all people who care about Java to stand together with us.
JavaOne Home
Microsoft Technologies for Java
Mountain View Java Users Group
Marimba, Inc.
N-ARY Limited Home Page
Netscape DevEdge - Library
Open Group Java Program Page
OSF Java Program Page

back to Java

Java Development Tools

Cacao Home Page
CACAO is 64 bit just-in-time (JIT) compiler for Java. It translates Java byte code on demand into native code for the ALPHA processor. During this translation process the stack oriented Java byte code is transformed into a register oriented intermediate code. Local variables and stack locations are replaced by pseudo registers eliminating the 32 bit restriction on address types. A fast register allocation algorithm is applied to map the pseudo registers to machine registers. During code generation, field offsets are computed for proper alignment on 64 bit architectures. Even though the CACAO system has to incur loading and compilation time, it executes Java programs up to 85 times faster than the JDK interpreter, up to 7 times faster than the kaffe JIT compiler. It is slightly slower than equivalent C programs compiled at the highest optimization level.
Free Builder - a Free Java IDE Initiative
The Free Builder Project is initiated by a group of Java-Linux members who cooperate to develop a free Java Integrated Development Environment. We believe that Free Builder will make our life much easier, as Java becomes the most widely used language for distributed and general purpose programming.
Grok Project Home Page
The grok project is an implementation of the Java Virtual Machine for Intel x86 Win32 platforms. It was started between Christmas '95 and NewYear's '96. Grok is a clean room implementation meaning that it was written from the Java documentation, and where the documentation was insufficent, from black box testing of the Sun implementation. It is not based on any source code. It is written in C++ using Microsoft VC++ 4. It is a just in time compiler, meaning it converts the java byte codes to native intel machine code before execution.
Guavac home page
Platforms Supporting Java
WorkShop Developer Products
Java Port Project Home Page
JDK 1.1.5
OSF Java Software Distribution
Solaris Joe
Joe connects Java programs running in standard Web browsers with high-performance, robust business applications across the corporate Intranet and public Internet.
Vibe for Java
Vibe is an application development environment used to build and deploy Java-based business solutions.
iDoc - Java Documentation QA Tool
JOLT Project Home Page
Mocha - the Java decompiler
HP JDK Download
iDoc - the Java(tm) Documentation QA Tool
KAFFE - A virtual machine to run Java(tm)* code

back to Java

Java Language Development/Extensions

Cleanroom Java (for embedded real-time)
Demeter/Java - Java and Adaptive Programming (AP)
The E Programming Language
E is a programming language for writing distributed applications. It combines Sun's Java programming language with some powerful enhancements: communications extensions for the development of distributed applications; optimistic computation, a powerful method for reducing the effect of communications latency in distributed systems; and an improved security model based on capability semantics and public-key cryptography, permitting fine-grained control over access to system resources without sacrificing security.
Free Tools for Java lexing/parsing
High Performance Java
IMMD IV - MetaJava
MetaJava extends Java with a reflective metalevel architecture. Reflection is the capability of a system to reason about and act upon its own computation and adjust itself to changing conditions. Metaprogramming separates the adjusting mechanisms from the functionality of the program. It is even possible to formulate the metaprogram in a generic way and use it for arbitrary objects.
Jasmin is a Java Assembler Interface. It takes ASCII descriptions for Java classes, written in a simple assembler-like syntax and using the Java Virtual Machine instruction set. It converts them into binary Java class files suitable for loading into a Java interpreter.
Java Computing at Sun - Technology and Research
Java Distributed Systems
The mission of the Distributed Systems Group at JavaSoft is to exploit the power of the Java language to enable reliable computing over large-scale networks such as the Internet and to provide products, services, and resources that, from the point of view of the programmer and the end user, exist on the network itself.
Java VM Performance Report
JavaBeans - Component APIs for Java
JavaCC - Java Parser Generator
JavaParty is an extension of Java with some important new features: Transparent Remote Objects. Although RMI seems to offer this, you really have to re-work your multi-threaded Java program significantly before you can exploit the combined computing power of all your workstations with RMI. JavaParty programs are just a tiny step away from regular Java; Object Mobility. JavaParty objects are free to move from one node of the network to another. Object migration results in locality of access and therefore may hide network latency. Migration is either triggered by the runtime system or can be initiated by the JavaParty programmer. A future version will have some additional compile time analysis; JavaParty compiles programs to ordinary Java ByteCode, and interfaces with existing Java code, retaining the broad compatibility of Java. And after you've added JavaParty, you can continue to use all of the old Java libraries as well as your own past code.
JAVAR - A prototype restructuring compiler for Java
JavaSpaces provide a distributed persistence and data exchange mechanisms for code written in the Java programming language. Data is written in entries that provide a typed grouping of relevant fields. Clients can perform simple operations on a JavaSpace to write new entries, lookup existing entries, and remove entries from the space. Using these tools, you can write systems to store state, and also write systems that use flow of data to implement distributed algorithms.
jb -- Bison Parser and Lexer Generating Java
JDBC Frequently Asked Questions
JIDL: The CORBA IDL Compiler for Java
JLex: A Lexical Analyzer Generator for Java(TM)
JSpring - JVM for Real-time Embedded Systems
Juice Homepage
Juice is a new technology for distributing executable content across the World Wide Web. In this respect, it is similar to Java from Sun Microsystems. However, as we will try to explain in the following, Juice differs from Java in several important aspects that allows it to outperform Java in many "downloadable Applets" applications. The advantages of Juice become even more pronounced when the "Applets" are large. Java, on the other hand, has an advantage in the area for which it was originally invented: embedded applications in consumer electronics and household appliances. Juice is intended to be a complement to Java, giving users a choice: Java or Juice.
Kimera: A Java System Security Architecture
ObjectStore PSE for Java
ObjectStore PSE for Java (PSE) is the first persistent storage engine for Java developers, and you can use and distribute it Free of Charge! It provides an easy to use interface for storing and retrieving your Java objects in a single, persistent storage file. Additionally, the PSE API is compatible with the other Object Store APIs so you can scale your Java applets and applications between single-user desktop and distributed, highly available, multi-user execution without rearchitecting.
OZ: O-O Distributed Environment
OZ is an objected-oriented distributed systems environment under development to realize worldwide programming environment in which not only data but also services and classes over networks. OZ is implemented on Java.
Parameterized Types for Java
The Pizza Language and Compiler Site
Pizza is an extension of Java with three important new features: Parametric polymorphism (although superficially similar to C++'s templates, this implementation is based on the Hindley/Milner typing systems of ML and Haskell). First-class functions (similar to the blocks of Smalltalk, functions and procedures may be passed as parameters, stored in variables and returned from methods). Class cases and pattern matching. Pizza includes support for visitor-style patterns directly in the language, allowing much more expressive and readable code. Pizza compiles programs to ordinary Java Byte Code, and interfaces with existing Java code, retaining the broad compatibility of Java.
PJava - The Persistent Java Project
Remote Objects for Java

back to Java

Java with other Languages

ANTLR - Free langauge translation tool
ANTLR (formerly PCCTS) is a language tool that provides a framework for constructing recognizers, compilers, and translators from grammatical descriptions containing C, C++, or Java actions.
Eiffel & Java : The Best of Both Worlds
The Eiffel-Java Page
Free Tools for Java lexing/parsing
Jacl -- a Tcl Interpreter for Java
Java Front-end to CGI/Perl
JavaCC - Java Parser Generator
jb -- Bison Parser and Lexer Generating Java
JCC - A Java to C converter
JLex: A Lexical Analyzer Generator for Java(TM)
JML - a Java extension to HTML
jTCL - Java-like syntax for TCL
Kawa, the Java-based Scheme system
Languages for the Java VM
TclJava at Sun Labs
TclJava is a proof of concept for connecting Java and Tcl. The dynamicism of Tcl with the speed and portability of Java make a convincing case for combining these two internet ready languages. Security, already strong in Java, is augmented by Tcl's "padded cell" security model, allowing for safe scripting as well as safe applets.
Toba: A Java-to-C translator
Translating Smalltalk to Java
XML for JavaXML for Java

back to Java

Java Libraries

Advanced-Java Archive
CAL - Container and Algorithm library for Java
Carl Davis - Java Archive
Graphic Java Toolkit
Java ACE is a collection of Java packages containing classes that have been converted from the C++ version of the ADAPTIVE Communication Environment (ACE). The C++ version of ACE is a large object-oriented network programming toolkit which contains over 85,000 lines of C++ code and uses advanced C++ features like templates. The goal of converting ACE from C++ to Java is to provide a portable programming toolkit with a similar interface and functionality to the original version of ACE. This allows new and current users of C++ ACE an easy transition to Java and also adds significant value to programming concurrent Java networking applications. Note that applications written using Java ACE can communicate seamlessly over sockets with applications written using C++ ACE.
Jade is a software package which provides Web users with access to CORBA services via the Internet. Written in the Java programming language, Jade provides a machine independent CORBA 2.0 IIOP communications engine. This means the Jade software can be effortlessly downloaded via the Web and automatically installed into users' Web browsers.
Java Collections Package
Java Xanthine Class Library
JCAL -The Java Container and Algorithm Library
JFC - Java Foundation Classes
JGL: The Java Generic Library
Koala GUI Toolkit
Kream is an attempt to reimplement all of the Java class libraries except for the AWT. Eventually, the combination of Kaffe, AWT, and Kream will give a complete Jave execution environment which is freely distributable.
maso.synch Package
The maso.synch package for object synchronization provides enhancements over the built-in Java synchronization capabilities. This package both provides better synchronization facilities, and exposes an easier-to-use set of methods for multiple thread synchronization.
NetComponents TM is a Java package that allows easy access to the most commonly used Internet protocols. The current 1.1 version supports FTP, NNTP, POP3, Telnet, TFTP, Finger, Whois, and other frequently used Internet protocols. The upcoming 1.2 version will add SMTP, IMAP4, and BSD R command support in addition to some other protocols. Let us know what you'd like to see included in future versions.
Netscape Internet Foundation Classes
SAWT: Simple AWT
The Simple Abstract Windowing Toolkit (SAWT) by Claude Lecommandeur is an attempt to implement the java.awt.peer interface. SAWT places as few language functions in java.awt.peer as possible and reimplements the rest of them in Java code. The result is a fairly portable basis for the AWT.
SubArctic UI Toolkit
SubArctic is a new Java(tm)-based user interface toolkit under development by Scott Hudson and Ian Smith at the Graphics, Visualization, and Usability Center at Georgia Institute of Technology. SubArctic is not yet another AWT widget set. It is a complete, full functioned, industrial strength toolkit designed to be used for all your user interface needs. SubArctic is based on 10 years of toolkit research and is designed to offer the advanced interface techniques needed to go beyond static interfaces and simple collections of widgets. SubArctic is highly extensible and supports a number of sophisticated effects not available in other toolkits (and provides the basic infrastructure to build much more).
XTC: the X11 Protocol for Java

back to Java

Java Apps

BeanShell - a Java Scripting Environment
Besiex Software's FrIJDE Page
Besiex Software's FrIJDE ("frigid") Free Integrated Java Development Environment Project
Blackdown Organization -- Free Tools for Java
Capsule Reviews of Java tools
Cool Freeware: Java Gallery
cvsClient - a Java Interface to CVS
Cygnus' Webhackers - Free Java Tools
Electric Communities Home Page
Electric Communities is developing secure, scalable Internet-based social systems and virtual communities.
Freeware: Java Information
HORB - a free Java ORB
HORB is a freely available object request broker written entirely in Java. It allows Java programs to call other objects on a remote server.
IBM Aglets Workbench - Java Agents
JacORB is a freely available, CORBA 2.0 compliant ORB written in Java. It is published under the GNU Public License.
Java Agent Template
The JAT provides basic agent functionality packaged as a Java application. JAT agents can be executed as either applications or as applets via the appletviewer. Information exchange includes KQML messages, Java code and arbitrary files.
Java Application Site
Java CUP Home page
Java IDL
JavaTM IDL, Sun's 100% Pure Java Object Request Broker (ORB) system, provides the software foundation necessary to deliver enterprise client/server applications for the Internet. Applications that use Java IDL seamlessly integrate with non-Java programs and programs from other vendors. The Java IDL systems is based on the latest CORBA and IIOP industry standards.
Java Products from SunSoft
Java Telnet Applet
Java User Group Deutschland: Software Archive
JavaSoft Download Directory
Jeeves Home Page
Jeeves is JavaSoft's Java-Powered Internet Server and framework for an extensible family of Java-based network services. Jeeves defines the Java Servlet APIs for the quick and easy creation, installation, administration and security of Java-based network servers.
Jorba is currently work in progress. When complete, it will be a CORBA 2.0 compliant (almost) Object Request Broker suite implemented in Java.
JSH - Java SHell
JSH implements a Unix like multiprocess environment within a single Java virtual machine. If you wish to run more than one Java application from inside JSH, you don't have the overhead of running multiple garbage collectors and native processes. JSH can get at a lot more information about each Java process than would be possible if it were running in a different VM. It is now possible to get detailed information about running threads, open windows and loaded classes. Each process will also have its own log of output sent to the system error stream.
JShell - The Java Shell
NCSA Habanero
The Habanero project at NCSA is investigating the enhancements in distributed interpersonal communication made possible when single-user computer software tools are recast as multi-user, collaborative work environments. Habanero is a framework for sharing Java objects with colleagues distributed around the Internet. Included, or planned, are all the networking facilities, routing, arbitration and synchronization mechanisms necessary to accomplish the sharing of state data and key events between collaborator's copies of a software tool. Authentication and privacy features are also planned.
Pretzel Homepage
Pretzel is a program that generates a prettyprinter module from a formal description of the way a certain language should be prettyprinted. A prettyprinter is a function or program that rearranges source code to enhance its readability. Prettyprinters generated by pretzel output LaTeX source code that can be used within your own documents. NB that pretzel produces modules, not programs! It also includes features to make Pretzel prettyprinters suitable for any target typesetter you like, they may even produce HTML output.
Promondia - Java-based Groupware
We have implemented a system, called Promondia, providing group communication functionality for the WWW. An early version of our system is known under the name COMO. Promondia consists of a server program and session starters implemented as Java applets, which are embedded in HTML documents. These applets are called session-management applets. When the user views an HTML document that contains a reference to a session-management applet, the browser loads this applet via HTTP and starts it. The applet does not necessarily have to be located on the same WWW server as the HTML page containing it. However, access via certain WWW servers can be restricted.
Voyager - an agent-enhanced Java ORB
Voyager is an agent-enhanced Object Request Broker (ORB) for Java. Voyager allows Java programmers to quickly and easily create sophisticated network applications using both traditional and agent-enhanced distributed programming techniques. Java programmers use regular Java message syntax to construct remote objects, send them messages, and move them between applications. This creates mobile autonomous agents that can roam a network and continue to execute as they move.

back to Java

back to Brad Appleton's Programming Languages Links

back to Brad Appleton's WWW Links

back to Brad Appleton's Home Page