J/Link is a toolkit that integrates Mathematica and Java. It allows you to call Java from Mathematica and call Mathematica from Java.

Calling Java From Mathematica

J/Link allows Mathematica programmers to load arbitrary Java classes into Mathematica, create objects of these classes, call methods and fields, and so on. You can, in effect, "script" Java from Mathematica. This powerful capability literally makes all of Java accessible directly from the Mathematica language and allows exciting new categories of Mathematica programs to be created, incuding creating user interfaces, using the internet, and many others.

Calling Java from Mathematica is documented in Part 1 of the J/Link User Guide, which can be read in the  Mathematica Documentation Center. The JavaDocs you are currently reading will not be of much value, as they describe the J/Link API as seen by Java programmers, not Mathematica programmers. It can still be useful for Mathematica programmers who want to use one of the J/Link classes that are designed to be used from Mathematica, such as the MathJFrame class.

Calling Mathematica from Java

J/Link allows Java programmers to launch Mathematica and use it as a computational engine. These JavaDocs describe the J/Link API that Java programmers will use to interact with Mathematica.

A good place to start is the KernelLink interface. KernelLink is the link interface that most programmers will use.

There are example programs in the J/Link examples directory: <Mathematica dir>/SystemFiles/Links/JLink/Examples/Part2.

There is more documentation for Java programmers in the J/Link User Guide, which can be viewed in the Mathematica Documentation Center. Part 2 of the User Guide describes writing Java programs that call Mathematica, and it treats various topics in J/Link programming. The JavaDocs you are now reading are the API-level documentation.

Updated Versions

The latest version of J/Link can be freely downloaded from the J/Link home page.

Package Description
This is the main J/Link package, containing the classes and interfaces that programmers will use most.
Includes some classes useful in programs with non-trivial user intefaces.
A couple of special utility classes: LinkSnooper, a program that displays MathLink traffic between two programs, and MathematicaTask, an Ant task for using Mathematica in Ant build files.