->Lib doc.
->Tools doc.
->Mailing list
->Bug reports
->SCM Inria
->Home (http)

The java Command

The java command is the SmartEiffel Java byte code generator for the Java Virtual Machine. There are two invocation modes: traditional and ACE. In traditional mode, a variety of compiler options can be specified on the command line. In ACE mode, these options are not permitted; it is presumed that the required compiler options are listed in the ACE file.


Traditional mode
se java [options] <RootClass> [<RootProcedure>]

ACE mode
se java [general_options] <ACEfile.ace>

In traditional mode, the java command must be given at least one argument to indicate the starting execution point of the system. Thus your program will start in <RootProcedure> of <RootClass>. The default <RootProcedure> is make.

In ACE mode, the name of the ACE file must end with the .ace suffix. For examples of how to use ACE files, have a look in the SmartEiffel/tutorial/ace directory.

Load Path for Eiffel Source Files

The java command uses the technique described in the documentation for the find command to locate the Eiffel source files it tries to compile. Note that what actually happens depends on the invocation mode (traditional or ACE).

General Options

Display a brief summary of the command-line syntax and a complete list of compiler options.

Print system information during the compilation (full path of files loaded, type inference score, removed files, etc.).

Display the version number of the SmartEiffel release you're using.

-loadpath <loadpath_file>:
Adds a loadpath file for class lookup. See details in the find man page.

Options to Select Eiffel Compilation Modes (traditional mode only)

As with the compile_to_c command, there are 7 different compilation modes: -boost, -no_check, -require_check, -ensure_check, -invariant_check, -loop_check, and -all_check. The -debug option is available too.
These options have the same meaning as with compile_to_c. See the compile_to_c documentation for details.

Other Options (traditional mode only)

-o <output_name>:
Place the main output in <output_name>.class and other class files in the directory <output_name>. When this option is absent, the default is <Root-Class>.

Suppress output for warning messages related to the non-respecting of standard Eiffel style guidelines (for example, ItEm will not trigger a warning).

Suppress output for all warning messages. (Error messages are still printed.)

The SmartEiffelRuntime.java class

The SmartEiffelRuntime.java class implements some low-level external features. This file is in the directory SmartEiffel/sys/runtime. The file SmartEiffelRuntime.class must be present to execute the Java byte-code generated by the java command. Don't forget to add this class to your Java CLASSPATH system environment variable. You can also copy the file SmartEiffelRuntime.class to some appropriate directory.


Example 1
When SmartEiffel is correctly installed, you can type the following command to test the hello world program :

se java hello_world
Then, in order to execute the Java byte code produced, you can use the command:
java hello_world

Example 2
As for the compile_to_c command you can add the option -boost to omit all assertion checking:

se java -boost hello_world

Example 3
To change the name of the generated main class, you have to add the -o option:

se java -boost -o out hello_world
Then, you can run the Java byte code with:
java out
Note that the name used for the class files directory is also changed (this directory is also named out).

Example 4
Finally, the -verbose option may be useful to check which files are loaded, which files are created, or to fix some installation problem:

se java -verbose hello_world

Copyright © Dominique COLNET and Suzanne COLLIN - <SmartEiffel@loria.fr>
Last modified: Tue Feb 11 12:14:05 CET 2003