<chapter id=chapter.ozengine proglang=sh>
  <title/The Oz Engine: <code/ozengine//
  <p>Like Java, Oz is also based on the idea of byte code execution.
<code/ozengine/ is an emulator that implements the Oz virtual machine.
It is normally invoked as follows:
<code display/ozengine ?{url} ?{args...}/
where ?{url} identifies an Oz application (a pickled functor) and
?{args...} are the arguments for the application.</p>
  <p>It is also possible to create <em/executable/
functors.  These are ordinary functors, except that when one is
invoked as a shell command, it automatically starts
<code/ozengine/ on itself.</p>
  <p>Under Windows, an alternative to <<ozengine>> is provided called
<<ozenginew>>.  While <<ozengine>> is a console-based application,
<<ozenginew>> is a GUI-based application.  Its output appears in message
boxes instead of in a console window.  Other than that, they behave the
same.</p>
  <p>Instead of supplying arguments on the command line, you can also
indicate a preference for using a graphical interface for editing an
application's input parameters:
<code display/ozengine --gui ?{url}/
The <code/--gui/ option is convenient for starting applications
directly from
a web browser, simply by clicking.  This makes
<code/ozengine --gui %s/
a good choice of a helper application for web documents with MIME type
<code>application/x-oz-application</code>.  Consult
<ptr.extern to="ozdoc:apptut" key="chapter.deployment"> for more
detailed information.
</chapter>
<!--
Local Variables:
mode: sgml
mode: auto-fill
sgml-default-dtd-file: "../apptut/chapter.ced"
sgml-auto-activate-dtd: t
adaptive-fill-mode: nil
End:
-->
