Wolfram Computation Meets Knowledge

Wolfram Archive

J/Link: The Java-Mathematica Connection

Published February 14, 2000

February 14, 2000–Wolfram Research announces the integration of Mathematica and Java in the preview release version of J/Link. J/Link is a Mathematica toolkit that contains a Java-MathLink software developer’s kit with extensive documentation, utilities, and sample programs. According to Todd Gayley, Director of Java Technology at Wolfram Research, “J/Link is a major advance for Mathematica and Java. It expands the range and power of the Mathematica environment by instantly encompassing all of Java. It also makes it easy to write Java programs that use the services of Mathematica. In particular, people who want to create web-based solutions involving Mathematica now have an excellent tool.”

With J/Link, Java programs can now access the vast array of mathematical and technical knowledge that is available in Mathematica. For example, Mathematica can provide high-level numeric and symbolic solvers to applets, servlets, and applications. These can also use the powerful tools in Mathematica to generate and render graphical and mathematical objects. For instance, Mathematica provides world-class typesetting of mathematical formulas, including full support for input, output, and rendering of MathML.

J/Link also enables Mathematica programs to act as a scripting and wiring language for Java, providing an interactive development environment. Users can load Java classes, create objects, and call methods directly from Mathematica. With this facility, all of Java is now directly available in Mathematica to build sophisticated applications such as carrying out statistical analysis of data read from a URL, building platform-independent GUI applications, or manipulating XML data.

Mathematica–the leading software system for numerical, symbolic, and graphical computation–lets users solve, visualize, and harness the power of mathematics without the pencil-and-paper, calculator, or complex custom-software approaches that were previously necessary. In Mathematica absolutely every object is an expression, whether it is a formula, program, graphic, or user-interface object. This uniform tree-based structure supports a powerful programming language and also fits naturally with the Java object model.

MathLink is a general interface for external programs to communicate with Mathematica. It allows Mathematica expressions to be transmitted–i.e., serialized–from one process to another, even if they are running on different computers. Because Mathematica, MathLink, and Java are all well-known platform-independent technologies, applications constructed from these components allow the construction of sophisticated and completely portable solutions involving computation done by single machines or groups of programs over a network.

The core technology of J/Link makes use of the Java-reflection API, which allows Java code to describe itself to some external agent, in this case Mathematica. In this way Mathematica can dynamically and automatically construct the correct interface to the capabilities of a Java package. There is no need for any special template interface to be constructed, as is the case for C or C++. Wolfram Research, Inc. is making this preview release of J/Link available at no charge both to users and to developers who wish to create applications involving Java and Mathematica.

The J/Link package may be downloaded from http://www.wolfram.com/solutions/mathlink/jlink.