Compile to jvm

From Liberty Eiffel Wiki
Jump to navigation Jump to search

In the old days of SmartEiffel, there existed a backend compile_to_jvm - an alternative compiler that produced Java byte-code. It generated a subdirectory named from the main class of a project that was suitable for either direct execution or JAR generation.

This backend is no longer supported, as no one seems to
care about it or use it for any interesting project.

We will keep this for some time but for the time being there are no plans to continue compile_to_jvm. If you think it would be worth resurrecting this backend please let use know.


  • compile_to_jvm [options] <Root-Class> <Root-Procedure>
  • compile_to_jvm [options] <ACEfilename>
  • compile_to_jvm -help

This tool works similarly to the standard compile_to_c compiler and thus shares many options: assertion control, path loading...

Current (2.2) specific options are:

  • -jar: tell the compiler to also produce a .jar file of the project
  • -run: tell the compiler to automatically run the project after successful compilation
  • -use_jar <jar>: use <jar> application to generate the .jar file instead of the default one (implies -jar)
  • -use_jvm <jvm>: use <jvm> to run the program instead of the default one (implies -run)
  • -extern_compiler <compiler>: Use the Java <compiler> compiler to compile plugins and runtime
  • -ss <size>: Set the maximum stack size to <size> (implies -run)
  • -mx <size>: Set the maximum heap size to <size> (implies -run)
  • -ms <size>: Set the initial heap size to <size> (implies -run)
  • -classpath <path>: Set the path which is search for compiled classes (implies -run)