JANOSVM(1)

NAME
janosvm - a virtual machine to execute Java(tm) bytecodes.

SYNOPSIS
janosvm [options...] classname [arguments...]

DESCRIPTION
janosvm loads and executes the bytecode in the class classname, starting with the main method (which must be static and public). Any arguments given after classname are passed to the main method. Additional classes are loaded as needed.

Unlike other virtual machines, the JanosVM supports multiple, separate processes (called "teams" in JanosVM) within a single VM. Based on KaffeOS (and thus Kaffe), the JanosVM supports per-team separate heaps, per-team garbage collection threads, inter-team thread migration, safe cross-team reference objects, and a spiffy tutorial. Designed to support asynchronous termination of uncooperative or malicious Java applications, the JanosVM provides robust and scalable multi-process support within a single Java virtual machine.

OPTIONS

-help
    Give a short usage message.

-version
    Print the version number.

-fullversion
    Print verbose version info.

-ss size
    Set the maximum stack size to size

-ms size
    Set the initial heap size to size

-mx size
    Set the maximum heap size to size

-as size
    Set the heap increment to size

-classpath path
    Override the default search path for class files with path.

-addclasspath path
    Appends the given path to the current classpath setting. Multiple instances of this flag may be given.

-Dproperty=value
    Set property to the given value. Some properties are used by the VM at startup. All can be fetched at runtime through the method System.getProperty().

-noverify
    Do not verify any bytecode.

-noclassgc
    Disable garbage collection of classes.

-jar
    The startup class, classname, names a JAR file.

-v  Enable verbose output.

-verbosegc
    Print messages during garbage collection.

-verbosejit
    Print messages during JIT code generation.

-verbosemem
    Print detailed memory allocation statistics.

-vmstats flag{,flag}
    Turn on VM statistcs. Use ``-vmstats list'' for a list of available flags.

-name name
    Register this VM instance as name. This is useful when the JVM is going to be the target of JSI messages since you can just use the registered name instead of a whole protocol and address specification.

-jsiprovider name
    Specify where the jsi provider should listen. The format of name is a protocol name followed by a colon and then some implementation dependent address data. For example, to listen on TCP port 10000 of the current machine (sloane.sd6.gov), you would use -jsiprovider tcp:sloane.sd6.gov/10000. Currently, only one provider is allowed at a time.

-jsitcpport port
    Specify a TCP based JSI provider that should listen on port .
      Basically, a fast alternative to the above.

-jsifile name
    Setup a JSI link through files with name as their basename. This option can be used multiple times.

-config file
    Use file for initial configuration of the JanosVM.

-noexit
    The JanosVM continues even if only non-dameon threads are running. Useful for JSI-controlled VMs that would otherwise exit.

-vmdebug flag{,flag}
    Enable VM debugging. Use ``-vmdebug list'' to get a list of available flags.

-nodeadlock
    Disable deadlock detection.

-Xxprof
    Enable cross language profiling. See FAQ/FAQ.xprofiler for details.

-Xxprof_syms  filename
    Name of the profiling symbols file. Defaults to kaffe-jit-symbols.s.

-Xxprof_gmon  filename
    Base name for gmon files. Defaults to xgmon.out

-Xxprof_format  formatname
    Undocumented.

-Xxdebug
    Generate a debugging symbols file usable by gdb. See FAQ/FAQ.xdebugging for details.

-Xxdebug_file  format name
    Name of the debugging symbols file. Defaults to xdb.as.

-Xfeedback
    The file name to write feedback data to.

ENVIRONMENT

CLASSPATH
    A colon-separated list of directories in which to search for .class files.

KAFFEHOME
    Base directory of kaffe installation.

KAFFE_DEBUG
    Optional value naming the debugger to start JanosVM up under. Performs debugger-specific initialization to ensure that the JanosVM command line is used by the debugger. Can be ``gdb'', ``DDD'', or ``Emacs'' (for Emacs GDB mode).

LD_LIBRARY_PATH
    A colon-separated list of directories in which to search for libraries. See ld.so(1) for details. This needs to be set if Kaffe's shared libraries are installed in a location not part of the dynamic loader's default search path.

FILES
There are native libraries, jar files, class files, shell scripts and libtool files used by the JanosVM at runtime.

NOTES
Java is a registered trademark of Sun Microsystems, Inc. JanosVM is available at http://www.cs.utah.edu/flux/janos/. See that page for information on mailing lists. The JanosVM is based on Kaffe, http://www.kaffe.org/, a freely-available GPL'd Java Virtual Machine.

AUTHOR
The JanosVM was written by the Flux Group at the University of Utah. Kaffe was originally written by Tim Wilkinson <tim@transvirtual.com>, 1996. Many, many others have contributed to the Kaffe project.

COPYING
The JanosVM is distributed under the GNU GPL. For full details, see the file license.terms in the source distribution for full details.