JVMI2 - The
Java/NT Services Utility
NT4/2000 Version 2 - April 14, 2001
Designed for installing, removing and
running Java 2 applications as NT services.
by Bill Giel / KC
Multimedia and Design Group
Evaluation Download - JVMI2 is available at no cost for testing and
evaluation. This version displays an "Evaluation Only" message that is not
displayed in the retail version. Otherwise, this is the exact same software as the
licensed version and comes with ready-to-run examples and Java source code (for the
Single user versions will be available
for online purchasing soon. Bulk licensing is also available. Please
direct inquiries to firstname.lastname@example.org.
- Optionally self-installs or removes pure Java
app's as NT services from the command line. JVMI2 eliminates the need for
third-party service installers for Java 2 applications. Install as many Java apps as
services as needed, name them any way you like. JVMI2 also logs installs/removes for your
- Service installations are configured using simple,
readable XML text files. A single file can execute multiple service
- Optionally redirect Java's System.out and
System.err to a log file.
- Optionally set a working directory.
- Optionally set service dependencies.
- Familiar command line syntax. Arguments
for your app and the JVM are expressed in way that is compatible with java.exe.
- Trap logoff events if JDK 1.3.0_x is
- Install in any directory, JVMI2 no longer
has to be installed in the JRE folder.
- Embedded spaces in path names and other arguments
- Improved output and event-logging, to
help diagnose troublesome java applications as services.
- Reusable Java source code demonstrating a simple way to receive
service stop events from NT in your Java application with no JNI code.
- Still can be used as a console JVM invoker, implementing a
subset of java.exe's command line syntax (compatible with the original JVMI)
JVMI2 provides everything needed for
running pure Java applications as NT services. In addition to its original role as a
simple alternative to java.exe for trapping logoff events with JDK 1.3.0, it provides a
great deal of new functionality.
- Command line installation or removal of
your Java applications as NT services
- Easy configuration of service and
display names, working directory, redirection of System.out and System.err to a log file,
service dependencies and arguments to the JVM and your application, using XML formatted
- Automatically traps logoff events if
using JDK 1.3.0
- Provides a simple mechanism for pure
Java applications to receive stop events from NT by implementing the provided
SCMEventManager Java code.
- Improved event-logging and error
reporting to assist in debugging troublesome installations.
Unpack the distribution zip file to
your destination of choice.
Using JVMI2 as a
Java launcher from the console
Using JVMI2 to
install/remove NT Services
If you are using Java 1.3.0, you can
use jvmi2.exe instead of java.exe to run Java applications as NT services with
generic utilities such as ServiceInstaller,
Idetix Invoker and others. (JVMI2 will
trap the logoff events that normally cause java.exe to end with Java 1.3.0. This has been
addressed in later Java versions.)
Running jvmi2 as a console application
can also help confirm proper functioning with your application, in preparation for
installing your application as a service.
- Jvmi2's console syntax is
similar to java.exe:
- jvmi2.exe [options] class [arguments...]
- -cp classpath
- Specify a list of directories, JAR archives, and ZIP
archives to search for class files. Class path entries are separated by semicolons (;).
Any paths specified here will completely replace a CLASSPATH environment string, if any.
- Set a system property value, such as java.rmi.codebase.
These arguments are passed directly to the JVM. A
java.class.path specified here will completely replace a CLASSPATH environment string, if
- Sets non-standard options (see java.exe
documentation) to be passed directly to the JVM.
Important Notes concerning
A classpath stated using -cp classpath
will take precedence over any classpath stated using -Djava.class.path=classpath
To install your app as an NT service,
first create an installation file that contains the information needed. Jvmi2's
installation files are formatted using XML tags. An example is shown below:
Note in the above that the first non-JVM argument (set
off by <ARG>...</ARG> tags) is the main class of the Java application. Also
note the use of '/' rather than '.' when specifying class names. Finally, note the use of
%CWD% which expands to the current working directory
jvmi2 -f filename
where filename is the path of the XML installation file, will install your
To remove a service, use
jvmi2 -r servicename
where servicename is the registry Service Name (not the Display Name) of the service
to be removed.
Jvmi2 keeps a log of services that it installs or removes
in its installation root directory for reference purposes
Copyright © 1999 by Rocky Fikki & Bill
Giel / KC Multimedia and Design Group, Inc.
All Rights Reserved.