Java Glossary

Last updated by Roedy Green ©1996-1999 Canadian Mind Products.

J

J++
Microsoft's proprietary version of Java. They don't call it Java to avoid having to conform to the Sun specifications and licensing. The IDE development system is called Visual J++.
J.F.O.X.
Java Financial Object Exchange. Sun's project to standarise exchange of financial information. See JFox
J/Crypto
a set of cryptography classes
Jack
Jack is a parser that has been renamed to JavaCC. See parser, JavaCC.
Jacl
a Tcl implementation in Java
JacORB
A free object request broker. See ORB.
Jad
a decompiler. See decompiler, disassembler.
JAF
With the JavaBeans Activation Framework, Java developers can take advantage of standard services to determine the type of an arbitrary piece of data, encapsulate access to it, discover the operations available on it, and to instantiate the appropriate JavaBeans component to perform said operation(s). For example, if a browser obtained a JPEG image, this framework would enable the browser to identify that stream of data as an JPEG image, and from that type, the browser could locate and instantiate an object that could manipulate, or view that image.
Jakarta
Microsoft's codename for J++ before it was released. See J++.
broken_link
Jamba
Aimtech's $500 Applet authoring tool now owned by Asymetrix.
James
An servlet womb from VPRO formerly called JavaHTTPD. See servlet.
Jango
a Netbot that combs the web shopping malls for you looking for the best price on some product.
JAR file
Java classes can be bundled up into something that looks very much like a ZIP file with compression turned off. In JDK 1.1 you can turn compression on. It is faster to download a group of classes as a single JAR file since HTTP has high overhead to set up a connection for each file transferred. JavaBeans are packaged in JAR files. A JAR file differs from a standard ZIP in that: You can create or read jar files with the java.util.zip classes, or with Sun's Jar.exe utility. Visual Cafe has an excellent jar builder. You can also use WinZip version 6.3 or later to view or delete files. Unfortunately WinZip there are several problems in using WinZip to create jar files or to add files to them.
Microsoft Internet Explorer does not support jar files. It uses Microsoft-proprietary single-platform cab files instead.
See archive, cab, GZIP, ZIP, PackAJar, manifest, JavaBean, BeanBox, BeanInfo, Java Cannery, MoaJar, digital signatures, JAX.
JASM
Java Assembler. Pronounced "jazz-em", a generic term for assemblers for the JVM bytecodes. It also includes postfix assemblers. O'Reilly is publishing a book Java Virtual Machine includes an assembler. See Java Bytecode Assembler. Jasmin.
Jasmin
an assembler to generate JVM bytecodes. It was written as a companion to the O'Reilly book, The Java Virtual Machine, about the JVM. See JASM.
Jato
Powersoft/Sybase's rapid application development (RAD) Java development tool formerly code-named "Starbuck" based on Optima++. Now called PowerJ.
jaunting
a technique pioneered in Abundance for allowing programs to run backward in time when an assertion fails thus giving the user a chance to navigate around the assertion by entering corrected data. Manually-invoked jaunting allows users to change their minds about what they should have entered earlier. Brawling Spanish stair or Gully Foyle fans will recognize the etymology from "Jaunte" in Alfred Bester's The Stars My Destination (ISBN: 0-679-76780-0). See Byte Magazine, 1986 October. See undo, checkpointing, trap-door functions, try blocks, exceptions, throwing, PVCS.
Sun Logo
Java
a computer language like a stripped down C++ that has been designed so that its object modules can run unmodified on many different platforms. Its primary characteristics are safety and security. The language was originally named Oak, but it turned out that name was already taken. Over coffee, somebody suggested Java as a replacement. Since programmers are the occupationally prone to caffeine addiction, the name seemed auspicious. For a formal definition of the language read the Language Specification online or you can download it. James Gosling is considered the father of Java. More recently Bill Joy and Arthur Van't Hoff are seen also as the Java illuminaries. See "Gosling, James", "Joy, Bill".
Java Blend
Sun's smart dbaware component Suite. Unfortunately the package sells for a whopping $3000 US.
Java Bytecode Assembler
A more-or-less traditional assembler for JVM. You would be surprised however how much like Java itself the code looks. See JASM.
Java Cannery
Starlight Software's beta tool for creating jar files written in Java. It automatically generates all the entries in the manifest file, including the Depends-on entries. See jar files, manifest.
Java Card
SLB has implemented a subset of Java to fit on a smart card using a 6805 microcontroller. There is a 4KB ROM and an 8KB operating system.
Java Cup
See JavaCUP.
Java Developer's Journal
a magazine for Java developers. Roedy Green and Andre van Delft, comp.lang.java regulars are contributors. See Pure Java Developer's Journal.
Java In A Nutshell
(ISBN: 1-56592-262-X or 1-56592-304-9 for the deluxe CD version). This is David Flanagan's classic text on Java published by O'Reilly. It is for experienced programmers new to Java, not new to programming. It covers the Java language and lists all the methods of the standard classes, indexed in a variety of convenient ways. Unfortunately there is no room to provide anything you could not find out by looking at the JavaDOC. It would be nice, if at least on the CD, there were additional notes about the various gotchas, how the various methods are used together etc. It is a reference, not a tutorial. It comes in two versions, plain and deluxe with CD that includes four other books: Exploring Java, the Java Language Reference, Java Fundamental Classes Reference, and the Java AWT Reference. The author answers his email and uses the feedback to improve the book.
Java Plug-In
Formerly called the Activator and now officially called the Java Plug-In, but the old name will be the one most people use for a while. Sun's Java environment that acts as a plug-in to a browser, replacing any JVM that browser had. This way you can update your JVM without needing a new version of the entire browser. It also makes it more difficult for Microsoft Internet Explorer to avoid supporting the full Java JVM. Unfortunately the HTML viewed must contain <EMBED> tags for Netscape and <OBJECT> tags for Internet Explorer to invoke the Activator Plugin. If they contain only the standard Java <APPLET> tags, the browser will insist on using its built-in Java implementation even if it has the plugin installed.
Java Reports Online
an online magazine about Java.
Java Ring
At the 1998 JavaOne conference Sun and Dallas Semiconductor distributed rings and ring readers. The pinky rings contained an embedded chip that encoded whether you liked cream or sugar in your coffee, and a unique id. The rings are big and silver, looking like something from an 1940's Green Hornet episode. The reader/encoders interface via a standard serial or parallel port. The rings could be used for robust, low cost mag stripe card sorts of applications. You can buy a development kit with a ring and your choice of serial or parallel reader for $50 from iButton. You can download software from the iButton site.
Java Shareware
Java Shareware (not be be confused with JavaShare) is a web site with shareware software developed with the Java language. This includes Java Stand-Alone Applications, Applets, JavaBeans, Servlets, Development Tools, Classes/Packages, and Javascript. Feel free to submit your Java project to the site.
Java Software
Java-Software.com is a collection of Java Applications, complex Java Applets (for Intranets for example) and Java Development Resources. This service is free both for authors and users. There is also a German Language version.
Java Spec Report
Unofficial report on the Java specification. It no longer tracks bugs in the JDK.
Java Studio
Sun's tools for managing JavaBeans. See JavaBeans.
Java Web Server
Sun's implementation of a servlet womb. Formerly known as Jeeves. see servlet.
Java Workshop
JavaSoft's IDE for writing Java code, sometimes called JDE.
Java-Src
Java-Src is a mailing list for sharing free Java source code. If you have written an interesting program and want to share the source code with others then feel free to post either a short message or the code itself to java-src@listserv.prodigy.com. Java-src is no discussion list - only source code or bulletins (if the source code itself is too big) will be distributed. The list is moderated so nobody will be able to abuse it. To subscribe, send an email to majordomo@listserv.prodigy.com with subscribe java-src in the message body.
java.exe
Java.exe is the JVM runtime or JIT that lets you execute your class files. You use it like this:
java HelloWorld
Note, unlike with javac.exe or <APPLET CODE, you don't specify the extension (.class). You must be in the directory where HelloWorld.class lives, and HelloWorld must have a
public static void main (String[] args)
method. The CLASSPATH must provide access to all the needed *.class, *.zip and *.jar files. If you want to run an Applet you need to use AppletViewer or a browser instead of java.exe, and you need to compose some HTML with an <APPLET tag in it.

java.exe has a number of options.
Option effect
-help print out info on options
-version print out the build version.
-v -verbose turn on verbose mode.
-debug enable remote JAVA debugging.
-noasyncgc don't allow asynchronous garbage collection.
-verbosegc print a message when garbage collection occurs.
-noclassgc disable class garbage collection.
-ss 64000 set the maximum native stack size for any thread, in bytes.
-oss 300000 set the maximum Java stack size for any thread, in bytes.
-ms 4000000 set the initial Java heap size, in bytes.
-mx 20000000 set the maximum Java heap size, in bytes.
-cp .;C:\java\classes.zip ... list directories in which to look for classes. It is sometimes spelled out longhand -classpath.
-prof:java.prof output profiling data to .\java.prof.
-verify verify all classes when read in.
-verifyremote verify classes read in over the network.
-noverify do not verify any class.

I lied to you. Life is actually a little more complicated. If you feel ready for the whole truth, here is how it really works:

This all sounds hideously complicated. I think it is best to think about just how the CLASSPATH is used. Then it all makes sense.
  1. When java.exe (or <APPLET CODE) wants to find a class. It has the fully qualified classname composed of package.classname e.g. cmp.business.HelloWorld.
  2. It then looks at each element of the CLASSPATH, working left to right seeking a match.
  3. If that element is a jar, it looks for an entry inside the jar for cmp.business.HelloWorld. It is irrelevant to the naming scheme where in the directory structure the jar file itself is.
  4. If the entry is a directory, it glues it onto the filename: e.g. presume the CLASSPATH entry were C:\MyStuff. It creates a new entry C:\MyStuff.cmp.business.HelloWorld. It tidies up the slashes, dots and backslashes and then looks for file: C:\MyStuff\cmp\business\HelloWorld.class. Another way of looking at this is it works almost the same as for jars. It looks for an entry under that element that has matching structure. It does not matter where the CLASSPATH element itself is in the directory tree. That has no effect on naming.
See CLASSPATH, javac.exe, SmartJ, Applet.
JavaAnalyzer
A program to analyse the flow in a Java program and present it graphically.
JavaBeans
A standard for Java componentware. It functions much like Microsoft's Windows-specific VBX Visual Basic pluggable components. The JavaBeans APIs allow ISVs to develop reusable software components that end-users can then hook together using visual application builder tools, such as Inprise's JBuilder, IBM's Visual Age, SunSoft's Java Workshop and Symantec's Visual Café. For example, Visual Café Pro has already created many smart components to give Delphi-like abilities to crank out SQL database applications. JavaBeans have persistence (with serialised customised objects stored in *.ser pickle files), properties, events and methods that are exposed to the GUI designer. They also support "introspection" so that GUI builder tools can examine them to figure out what properties and methods they support.
Writing a Bean is easy. Usually beans are bundled up with their corresponding BeanInfo classes into jar files.
Many companies are selling JavaBeans you can plug into your own custom applications. I have some I have written available free with source code. They handle prompting, data validation and generating error messages for data keyed. There are plain and dbaware components for dates, FormattedTextFields, phone numbers, provinces, postal codes, etc. you can download.
Companies selling beans include ProtoView Jsuite, Rogue Wave, SoftTech, StingRay, KL Group JClass and Three D Graphics. See BeanInfo, manifest, Jar file, BeanBox, introspection, pickle file, Gembuilder, Java Studio, BulletProof,KL Group, Rogue Wave, Stingray.
javac.exe
Sun's free Java compiler that comes bundled with the JDK. Most commonly you invoke it with:
javac myClass.java
Note, unlike with java.exe, you must specify the extension (.java). There are a variety of case-sensitive optional switches:
-g ?
-o ?
-debug add information to class files to aid in debugging.
-depend ?
-nowarn suppress warning messages.
-verbose long version of error messages.
-classpath /mydir:myCollection.jar:/jdk/classes.zip overriding CLASSPATH, colon separated.
-nowrite don't actually generate code, just check the syntax.
-deprecation warn of any use of any deprecated methods.
-d targetDir Place the output class files in this directory rather than the usual same directory as source.
-J runtimeflag
See java.exe, HelloWorld.
JavaCC
Formerly known as Jack. Suntest's and Metamata's JavaCC is a parser, like YACC, except that is it written in Java and generates Java code. It is similar to PCCTS. JavaCC is a LL(k) parser, whereas YACC is a LALR(1) parser, so the grammars look quite different. The documentation is quite readable, unlike most other in the field. The parser has some parsing speedup tricks like lookahead and custom code for the tricky bits. The download includes a slew of examples but no reference manual. The closest thing to a reference manual is the annotated JavaCC grammar and a minitutorial on tokenising available separately. You might start with an overview of the concepts underlying JavaCC. You can download it for free. The download links on the official pages are broken. The problem is Sun changed the name from www.suntest.com to www.sun.com/suntest, but did not fix all the links and move all the files. The easiest way to learn the JavaCC language is to look at the example parsers. I blew my mind when a little parser I wrote worked first time. It is much simpler than it first looks. Metamata has reworked JavaCC, cleaned up the syntax and called in Metamata Parse. See parser, JTB.
JavaClass
JavaClass is a general purpose tool for Byte Code Engineering. This API is intended to give users a convenient way to read, create, and manipulate the binary Java *.class object files. Classes are represented by JavaClass objects which contain all the symbolic information of the given class including the method headers, fields and method code bodies. Such objects can be read from an existing file, transformed by the application and written back out to a new *.class file. The JavaClass library may be also useful if you want to learn about the Java Virtual Machine (JVM) and the format of Java *.class files.
JavaCUP
JavaCUP is a parser, like YACC except that it generates Java code. See parser.
JavaDis
Wingsoft's Java disassembler to reverse engineer class files back into something similar to a Java source code. Now known as WingDis. See disassemble.
JavaDOC
Sun's tool for generating HTML documentation on classes by extracting comments from the Java source code files. The comments look like this:
/**
  * @(#)FormattedTextField.java    1.34 98/01/27
  * @author Roedy Green
  * @version 1.34 1998 January 18
  * @deprecated No replacement
  * @deprecated Replaced by otherMethod(int)
  * @see otherMethod
  * @see #otherMethod
  * @see java.awt.Component#repaint
  * @see <a href="http://mindprod.com/gloss.html">Java glossary</A>
  * @see "Design Patterns by Gamma et. al"
  * @param x >B<pixels>/B< right of the origin.
  * @return number of oranges.
  * @exception java.beans.PropertyVetoException when mask is invalid
  * @since JDK1.1
  */
You can generate the HTML with javadoc MyClass.java. If you want private methods also documented use:
javadoc -private MyClass.java
If you run out of RAM, expand the virtual memory space with:
javadoc -J-mx64m -J-ms64m ...
if that does not work try:
javadoc -J-mx64000000 -J-ms64000000 ...
Before you write reams of JavaDOC, look at some vaguely related topics, examples, and generate some HTML to learn some of the fine points. @author and @version are not officially permitted on individual methods, just classes and interfaces. See \jdk1.1.6\docs\tooldocs\solaris\javadoc.html in the JDK documentation pack. Generated JavaDOC in JDK 1.2 is quite different, and easier to navigate. Have a look at a sample. See PolarDoc, iDoc, obsoft.
Javagator
Informal name for Netscape's new browser written entirely in Java. The project seems to have been abandoned.
JavaHTTPD
A server CGI womb in which to run Java servlets. Now called James. See servlet.
javakey
JDK application for creating and managing digital signatures and signing applets so they can get past the security restrictions of the sandbox. This Javasoft standard for Applet-signing is only honoured by Hotjava and Appletviewer, but not Netscape or IE. See signtool, signcode, digital signatures, sandbox.
JavaLex
see JLex
JavaMail
Sun's generic Java API for mail. Sun has a preview implementation your can download. See SMTP, POP3.
Javanese
The way things are written in the Java computer language. I don't mean bahasa Indonesia, the language of the people living on the island of Java.
JavaOS
Sun's portable mini-operating system written entirely in Java. It is intended for embedded systems. See the Byte Magazine article.
JavaPC
A DOS-based 32-bit JVM for DOS 486+ PCs.
JavaPhone
Java will be used to implement smart telephones.
JavaPVM
JavaPVM is an interface written using the Java native method capability which allows Java applications to use the Parallel Virtual Machine (PVM) software package for implementation of parallel programs and inter-process communication among networks of heterogeneous, single- and multi-processor workstations. Together, PVM and JavaPVM support inter-process communication among Java, C, C++, and FORTRAN programs.
JavaScript
a scripting language embedded in HTML very different from Java that can be interpreted by the Netscape HTML browser. Questions about JavaScript should be directed to comp.lang.javascript not comp.lang.java.
JavaShare
JavaShare (not to be confused with JavaShareware) is a web site with shareware software developed with the Java language. This includes Java Stand-Alone Applications, Applets, JavaBeans, Servlets, Development Tools, Classes/Packages, and Javascript. Feel free to submit your Java project to the site.
JavaSoft
The business unit of Sun Microsystems that has the charter for the Java language and JDK, including licensing.
JavaSpaces
The more advanced version of Jini. This technology provides a cooperative marketplace for posting and retrieving groups of related objects across a network. "Buyers" and "Sellers" dynamically post their requests and/or services to a space and receive a response from interested parties. JavaSpaces is not interested in who is posting what; it is based simply on a value-matching lookup routine for specified fields.It is based on RNI. See RNI, Jini.
JavaToHtml
Crystalline Solutions' (Jonathan Revusky's) tool for pretty printing Java source by converting it to colorised HTML. I have made modications that bold face declarations and use variable size () and {}. You can see samples of its output, touched up slightly, in the gotchas section.
broken_link
JavaUniverse Developer
an online magazine for Java developers. Formerly JavaZine.
JavaWorld
a Java magazine. Comp.lang.Java regular Chuck McManis writes for it.
Javelin
A graphical IDE for Java and C++.
broken_link
JaWa
A preprocessor for allowing Eiffel-like assertions in Java. see assertions.
JaWiz
An IDE for writing Java applications that works with the Sun JDK 1.1.
JAX
A Jar file with a *.jax instead of *.jar extension. It contains a special entry in the manifest to tell which class file in the jar is the main one. A JAX file can be directly executed, just like a *.exe file with the appropriate associations.
JaZilla
a collaborative project to port Mozilla (the Web browser for which Netscape has released C++ source code) to Java. See the Usenet newsgroup at netscape.public.mozilla.java.
JBuilder
Inprise's (Borland's) Java IDE formerly called Latte. It is similar to Delphi. It does not handle JDK 1.0.2, but it does handle Swing, which other similar environments have trouble with.
JC 100
the JC 100 is a fledgling organisation that is trying to get a bunch of Java component vendors together to agree on standard ways of doing things so our components work together. It's headed up by the folks from Digital Harbor.
JCE
Java Cryptographic Extension API spec from SUN. The implementation for USA is from SUN. ABA, the Australian Business Access has provided a clean room implementation of JCE 1.2, including a cryptographic service provider, for international use.
JConfig
Samizdat's JConfig solves many of the problems which prevent Java from being used to create real-world, competitive software. JConfig can list the user's drives, obtain extended information on files, directories, volumes, and filesystems, their icons, creation dates, version information and mount points, launch browsers, get screen information, etc.
JDBC
Java DataBase Connectivity. Sun JavaSoft's API standard for attaching to an SQL-style database. I have written an essay about JDBC. It includes a list of JBDC and SQL vendors including prices of their products. JDBC allows a client Java application to connect directly to the SQL engine on a server without needing to go through packets sent via CGI. It is similar to Microsoft's ODBC, but platform independent. David Linker maintains a FAQ about SQL and JDBC including small free implementations. See broken_linkThorton Prime's FAQ about JDBC. If you are looking for an example for building a JDBC driver from the ground up, see Karl Moss's book Java Database Programming with JDBC (ISBN: 1-57610-056-1). JDBC is a somewhat wimpy standard. JDBC has many queries that allow you to ask what is supported and how, yet it makes almost no demands on what has to be supported or how. For example, you can't count on there being any way to read a row of a result set more than once or to scroll backwards through the result set. You can give feedback to Sun about JDBC at jdbc-javadev-feedback@eng.sun.com. See ODBC, SQL, JSQL, JDX, Jeevan, ORDBMS.
JDE
Sun's Java IDE (Integrated Development Environment) for writing Java applications. Sometimes called Java Workshop. See JDK.
JdesignerPro
BulletProof's classes for ODBC, spreadsheets and charts.
JDK
Sun's Java Development Kit. It consists of a compiler written itself in Java, and a run time interpreter for your particular platform. You compose programs using a traditional text editor. The term JDK also refers generally to the set of Sun-supplied classes including the AWT.

You can download the 9 MB JDK 1.17B which includes source but not documentation. You can download the 4 MB JDK 1.17B documentation separately. The new features in 1.1 include printing, persistence, remote procedure calls, internationalisation, signed applets, a whole new way of handling events, JavaBean components, BigInteger and BigDecimal for arbitrary precision arithmetic and reflection.

You can download the 20 MB JDK 1.2 final which includes source (hidden in src.jar) but not documentation. You can download the 16 MB JDK 1.2 final documentation separately. The new features in 1.2 mainly revolve around Swing, the platform independent set of pluggable look and feel components, JDBC 2.0, Collections and weak references.

Note, Sun's install instructions may tell you to hit download software. There is no such button. Hit continue instead. The JDK package optionally upgrades your Winsock. Undo with C:\WINDOWS\WS2BACKUP\WS2BACKUP.BAT or remove/reinstall Win95 dialup networking. The new socket software did not work for me and for a few other people I talked to. Plan your recovery before you install. Without a working Winsock you won't be able to ask for help or go searching the net for a solution. See this more friendly uninstaller.

For a complete list of classes, see the JDK 1.1 class hierarchy. Addison Wesley has a draft of their book on the JDK 1.1 online. You cannot distribute the JDK with your program. You must distribute the stripped down JRE instead. See JDE, JRE.

JDX
A product that uses SQL databases to implement persistent Java objects.

Je

Jeevan
W3apps object oriented database.
Jeeves
Javasoft's Internet Web Server now called the Java Web Server. Acme also have a product that uses the Jeeves API, but with their own source code. See Servlet.
JENI
Java Enterprise Network Interface. The company could not get investment capital to continue so has folded. Jentec's free product for programming E-mail, file I/O, printing, and directory services. It allows applets/applications to email, open, save, and print files to the network or locally if in application mode. JENI is protocol independent by supporting various server protocols like FTP, NFS, LDAP, POP, SMTP.
JFC
Java Foundation Classes. Sun's set of fancy JavaBean compatible GUI components. These include: Drag and Drop, New high-Level components, Pluggable Look/Feel (you choose whether you want to look like Windows, X etc.) 2D API, Accessability Features for the physically challenged, Tree view, List view, Table view, Tool bar, Pane Splitter, Tabbed folder, multi-column List, List with images, Progress bar, Slider, Styled Text, support import/export of HTML and RTF, Font Chooser, Color Chooser, Custom cursors, Tool tips, Generic button and MenuItem with images/check marks, Status bar, Spinbox, Combobox, Drop-down combobox, Drop down list box, Composable button, Multimedia Controls: Movie slider, AudioController, Movie controller, Properties, AudioGauge and MidiPanel. JFC grew out of Netscape's IFC. The GUI portion of JFC is known as Swing. One book that covers both the JDK 1.2 JFC and JDK 1.1 AWT is David M. Geary's Graphic Java 1.2 : Mastering the JFC : AWT (ISBN: 0-13-079666-2). See AFC, IFC, Swing.
JFox
a web browser written in Java. See HotJava.
JFront
A preprocessor to add C++ style operator overloading to Java.
JGL
Java Generic Library from ObjectSpace It has an extensive collection of reusable data structures and algorithms, including sorting. It is fast, free, and has been licensed by many compiler vendors for inclusion in their products.
Jigsaw
CERN World Wide Web Consortium server CGI womb in which to run Java servlets. See servlet.
Jikes
IBM Alphawork's Java compiler that produces standard byte codes. It is astoundinglyfast -- hundreds of thousands of lines of code per minute (about ten times faster than other compilers) , and it generates better quality code than the Sun compiler, and it generates better error messages. It is written in C++ which means it is not quite as portable as if it had been written in Java, but it is available for Window/Linux/AIX/OS2 etc. There is also a Jikes debugging package written in pure Java which runs anywhere. The easiest way to use Jikes on Win9x/NT is to download smartJC which converts Jikes into a semi-permanently resident DLL for even more speed. See SmartJC.
JIMI
a pure Java package for reading and saving various formats of image files, such as GIF and JPG.
Jini
Sun's protocol for devices to identify each other using TCP/IP protocol. It will be used in small devices like telephones. It allows you to plug a new device into the system while everything is running. The device automatically finds out about everything else on the net and vice versa. The device can create Java objects that can be passed around the net. This allows other devices on the net to start using the new device and vice versa without needing to install any software. See T Spaces
JIT
Just In Time compiler. See JVM, Café, CACAO, Supercede, Kaffe, HotSpot.
Jive
a free Java chat program.
JLEX
JLEX is a parser, like YACC except that it generates Java code. See parser. Formerly known as JavaLex. See parser.
JMF
Java Media Framework. A set of native classes to play sound files in many formats including Microsoft's WAV and AU. Both JavaSoft and Intel have developed packages. Intel calls their package Intel Media Framework, Java Edition. See IMF, wav, sound.
JNDI
Jjava Naming and Directory Interface. A multi-platform way to get at directories and files.
JNI
Java Native Interface. How you write C code native methods callable from Java. It will also tell you how to write C code to invoke a Java run time on a Java class. Beware! JNI is not suitable for use with public Applets. Even after you manage to defang the security manager to let you call your native methods, System.loadLibrary will insist that the *.dll file containing the your native methods be pre-installed on the client's machine somewhere on the path. It refuses to look for them in the jar file or on the website where CODEBASE points. You are pretty well stuck making your Applet install the necessary DLL on the client's machine. Ouch! If you use System.load instead of System.loadLibrary you don't need to have the DLL on the path. You could put the DLL in a temporary directory. See Essential JNI, Java Native Interface by Rob Gordon and Alan McClellan, (ISBN: 0-13-679895-0). See RNI, JRI, native class.
broken_link
Jobe
A shrouder. See shroud.
jobs
If you are a recruiter, I think you will get more bites if you mention the following in your ad: If you are sending an email to recruit, every tiny thing you do to personalise it will pay off. Anything that looks like a form letter usually goes straight to the trash. Even something as simple as starting it with the person's name e.g. "Roedy," will help you get your foot in the door.

If you are a Canadian wanting to work in the USA, NAFTA has made life somewhat easier. If you telecommute from Canada, there is no paperwork. If you want to work physically in the US, here is what you need:

I speak as a former employer. Here are some tips to get a job particularly with a smaller company: See the online jobs list or the FlashLine database of free lance programmers.
broken_link
JOE
Java Object Environment from Sun. See IDL. See Cup 'O Joe.
join
In SQL, selecting a row created from a data in two different tables, matched up by comparing values in specified columns. Normal INNER JOINS contain only matches. Outer joins contain mismatches as well. A LEFT OUTER JOIN B, contains entries from table A, whether or not they had matches in table B. A RIGHT OUTER JOIN B, contains entries from table B, whether or not they had matches in table A. A NATURAL JOIN, is a join where all identically named columns in tables A and B have matching values. A KEYED JOIN is a join done using matching values for fields in the PRIMARY and FOREIGN KEYS in the natural way. A CROSS JOIN is a Cartesian product of table A with table B, creating a combined record for every possible combination of a record from A with one from B. It is also possible to join a table to itself, creating Cartesian product list of all combinations of pairs of records matching some criteria. These are called self-joins.
Jove
A super optimiser for Java that generates native code for Windows and NT.
Joy, Bill
Bill Joy of Sun Microsystems along with James Gosling are known as the fathers of Java. You can hear Mr. Joy speaking with Scott McNealy about Jini in this recorded interview. Mr. Joy has authored or co-authored the following publications
Title ISBN approx cost
The Java Language Specification (Java Series) (online) 0-201-63451-1 $40
Java Core Reflection free online
JoZilla
a collaborative project organised by Netscape to write a web browser from scratch in Java. See Jazilla.
JPEG
A compressed file format Java uses primarily for photographs. Such files usually have a *.jpg extension. JPEG stands for Joint Photographic Experts Group. Unlike GIF, there are no patent problems with using JPEG files. For photographs, JPEGs are more compact that PNG files but less compact that WIF files. Compactness is important since it reduces download time over the net. JPEGs are not good at line art. There you use GIF or PNG. See PNG, GIF, WIF, image.
JPG
See JPEG.
broken_link
JPVM
JPVM is a PVM-like library of object classes implemented in and for use with the Java Programming language. PVM is a popular message passing interface used in numerous heterogeneous hardware environments ranging from distributed memory parallel machines to networks of workstations. JPVM, thus, is the combination of both PVM and Java -- ease of programming inherited from Java, high performance through parallelism inherited from PVM.
JRAD
JRAD puts out freeware source for a set of Java classes that simulate the Windows 95 components e.g. Tabbing and WizardDialog, NoMarginLabel, 3DLine, ToolTip, ToolBar, ImageButton, FolderTab and GroupBox.
JRE
Java Runtime Environment. This is the subset of Sun's Java Development Kit that you can ship with your application. It comes in JDK 1.1 and 1.0.2 flavors. It just became available at JavaSoft. It includes the JVM and the standard class library files. See JDK.
JRI
Netscape's Java Runtime Interface for writing native classes. For cross-platform work, it has been supplanted by the JNI standard. See JNI, RNI.
JShape
A Java GIS (Geographic Infomation System) that:
  1. Allows you to publish your GIS data to WWW internet and intranet.
  2. Handles databases over a gigabyte.
  3. Allows you integrate your GIS vector datasets and geo-referenced maps.
  4. Provides a Java APIs which allow users to customise their programs.
  5. Provides script commands which allow users to customise their programs without Java programming.
JShrink
Jshrink removes unnecessary symbolic information from Java .class files, resulting in files that load faster and yield less information when decompiled. See shroud.
JSpell
JSpell is a 100% Java, royalty free, spell check toolkit, which gives Java developers the ability to include spell check features into their Java applets and applications with a minimum amount of code.
JSpring
Ameran's clean room JVM interpreter for small embedded computers running underthe Sparc-solaris, Sparc-sunos or the the RTOS vxworks of Wind River System. See clean room.
JSQL
JSQL is a joint venture between IBM, Tandem arnd Oracle to build a more programmer-friendly SQL interface that JDBC. JSQL calls for automatic mapping of SQL types to Java objects, thereby producing bridges between the two languages, in addition to delineating methods for checking at application compile-time to make sure that SQL and Java types match. I saw a demo at the Colorado Summit. I was not impressed. We have a long way to go to get a decent SQL interface to Java. See SQL, JDBC.
JTAPI
Java Telephony Application Programming Interface. A set of classes for controlling a PBX or other telephony equipment. Download Sun's version.
JTB
Java Tree Builder. an invaluable extension of the JavaCC parser. It takes a plain JavaCC grammar file as input and automatically generates the following: See JavaCC, parser.
JTONE
Java Telephone Object Environment. A standard for Java to contrlol telephony equipment, e.g. voicemail.
broken_link
JTV
Java-enabled TeleVision. A Java platform supporting enhanced and interactive television applications. It is being developed as an open industry standard.
JUG
Jva User Group. Groups who usually meet once a month to discus Java and vaguely related topics, usually with a speaker. Here is another list.
JUMP
A math package written in Java.
JVM
Java Virtual Machine. The machine code for an ideal Java CPU. Sun is working on silicon CPU for this set of op-codes. The multi-platform universal *.class files are the machine code for such an ideal machine due out in 1997. Mitsubishi has also announced one. Until we all have Java CPU chips, there are two ways of running this code on a conventional CPU -- (1) interpreting it with a C program that simulates this ideal CPU, or (2) compiling it with a JIT (Just In Time) compiler into native machine code. The JIT compiles the byte code each time the class is loaded. It does not typically save a copy of the native code translation on disk. It is possible to write code for the JVM more or less directly with a JVM assembler. JVM also refers to the platform-specific program that can interpret JVM byte codes and execute them.

I know of only one book that covers the JVM and the binary codes, the classfile format etc. It is known as the goldfish bowl book because of its cover, but is officially called The Java Virtual Machine by Jon Meyer and Troy Downing, O'Reilly (ISBN: 1-56592-194-1).

The book is frustrating because it spends so much time with the irrelevant Jasmin assembler and its syntax. You are interested in generating byte codes directly, not assembler. It leaves out much you must discover by experiment looking at generated class files, such as whether offsets are signed or absolute, where the base is etc. In its next revision, it should set the Jasmin aside in an appendix, and include examples and more precise documentation on the binary formats. The book is still valuable because it gives a fair bit of background exposition you will not find in the vmspec itself. You would use this book to understand the VM, then the vmspec to actually write code that generated or modified class files.

You can view the Sun's Java Virtual Machine Specification online or you can download it. *

There are about 60 compilers that convert languages other than Java to JVM byte codes. They include: Tcl, BASIC, Scheme, Eiffel, COBOL, Ada, Python and Forth, as well as others less well known such as Pizza and Fiji.

See Mach J, JIT, IDE, JSpring.



CMP_home HTML Checked! award
CMP_home Canadian Mind Products You can get an updated copy of this page from http://mindprod.com/jglossj.html The Mining Company's
Focus on Java
Best of the Net Award