src/Doc/System/Environment.thy
changeset 63995 2e4d80723fb0
parent 63680 6e1e8b5abbfa
child 64509 80aaa4ff7fed
equal deleted inserted replaced
63994:18cbe1b8d859 63995:2e4d80723fb0
   397   relevant ML commands at this stage are @{ML use} (for ML files) and
   397   relevant ML commands at this stage are @{ML use} (for ML files) and
   398   @{ML use_thy} (for theory files).
   398   @{ML use_thy} (for theory files).
   399 \<close>
   399 \<close>
   400 
   400 
   401 
   401 
       
   402 section \<open>The raw Isabelle Java process \label{sec:isabelle-java}\<close>
       
   403 
       
   404 text \<open>
       
   405   The @{executable_ref isabelle_java} executable allows to run a Java process
       
   406   within the name space of Java and Scala components that are bundled with
       
   407   Isabelle, but \<^emph>\<open>without\<close> the Isabelle settings environment
       
   408   (\secref{sec:settings}).
       
   409 
       
   410   After such a JVM cold-start, the Isabelle environment can be accessed via
       
   411   \<^verbatim>\<open>Isabelle_System.getenv\<close> as usual, but the underlying process environment
       
   412   remains clean. This is e.g.\ relevant when invoking other processes that
       
   413   should remain separate from the current Isabelle installation.
       
   414 
       
   415   \<^medskip>
       
   416   Note that under normal circumstances, Isabelle command-line tools are run
       
   417   \<^emph>\<open>within\<close> the settings environment, as provided by the @{executable
       
   418   isabelle} wrapper (\secref{sec:isabelle-tool} and \secref{sec:tool-java}).
       
   419 \<close>
       
   420 
       
   421 
       
   422 subsubsection \<open>Example\<close>
       
   423 
       
   424 text \<open>
       
   425   The subsequent example creates a raw Java process on the command-line and
       
   426   invokes the main Isabelle application entry point:
       
   427   @{verbatim [display] \<open>isabelle_java isabelle.Main\<close>}
       
   428 \<close>
       
   429 
       
   430 
   402 section \<open>YXML versus XML\<close>
   431 section \<open>YXML versus XML\<close>
   403 
   432 
   404 text \<open>
   433 text \<open>
   405   Isabelle tools often use YXML, which is a simple and efficient syntax for
   434   Isabelle tools often use YXML, which is a simple and efficient syntax for
   406   untyped XML trees. The YXML format is defined as follows.
   435   untyped XML trees. The YXML format is defined as follows.