## jpl
Class JPL

    java.lang.Object
      jpl.JPL

public class JPL
extends java.lang.Object

The jpl.JPL class contains methods which allow (i) inspection and alteration of the "default" initialisation arguments (ii) explicit initialisation (iii) discovery of whether the Prolog engine is already initialised, and if so, with what arguments. The Prolog engine must be initialized before any queries are made, but this will happen automatically (upon the first call to a Prolog FLI routine) if it has not already been done explicitly.

Copyright (C) 2004 Paul Singleton

Copyright (C) 1998 Fred Dushin

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library Public License for more details.

Version:
  $Revision: 1.2 $

Constructor Summary
`JPL()`

Method Summary
`static java.lang.String[]` `getActualInitArgs()` Returns, in an array of String, the sequence of command-line arguments that were actually used when the Prolog engine was formerly initialised.
`static java.lang.String[]` `getDefaultInitArgs()` Returns, in an array of String, the sequence of command-line arguments that would be used if the Prolog engine were to be initialised now.
`static void` `halt()` Deprecated.
`static boolean` `init()` Initialises the Prolog engine using the current default initialisation parameters, and returns 'true' (or 'false' if already initialised).
`static boolean` `init(java.lang.String[] args)` Initializes the Prolog engine, using the String argument parameters passed.
`static void` `main(java.lang.String[] args)`
`static void` `setDefaultInitArgs(java.lang.String[] args)` Specifies, in an array of String, the sequence of command-line arguments that should be used if the Prolog engine is subsequently initialised.
`static void` `setDTMMode(boolean dtm)` Sets the global "dont-tell-me" mode (default value: true).
`static java.lang.String` `version_string()` Returns a String (eg "3.0.0-alpha") identifying this version of JPL.
`static jpl.Version` `version()` Returns (as a Version) an identification of this version of JPL.

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### JPL

    public JPL()

Method Detail

### setDTMMode

    public static void setDTMMode(boolean dtm)

  Sets the global "dont-tell-me" mode (default value: true). When 'true', bindings will *not* be returned for any variable (in a Query's goal) whose name begins with an underscore character (except for "anonymous" variables, i.e. those whose name comprises just the underscore character, whose bindings are never returned). When 'false', bindings are returned for *all* variables except anonymous ones; this mode may be useful when traditional top-level interpreter behaviour is wanted, e.g. in a Java-based Prolog IDE or debugger.

  This method should be regarded as experimental, and may subsequently be deprecated in favour of some more general mechanism for setting options, perhaps per-Query and per-call as well as globally.

  Parameters:
    `dtm` - new "dont-tell-me" mode value

### getDefaultInitArgs

    public static java.lang.String[] getDefaultInitArgs()

  Returns, in an array of String, the sequence of command-line arguments that would be used if the Prolog engine were to be initialised now. Returns null if the Prolog VM has already been initialised (in which case the default init args are irrelevant and the actual init args are of interest)

  Returns:
    current default initialisation arguments, or null if already initialised
  See Also:
    `getActualInitArgs()`

### setDefaultInitArgs

    public static void setDefaultInitArgs(java.lang.String[] args)

  Specifies, in an array of String, the sequence of command-line arguments that should be used if the Prolog engine is subsequently initialised.

  Parameters:
    `args` - new default initialization arguments

### getActualInitArgs

    public static java.lang.String[] getActualInitArgs()

  Returns, in an array of String, the sequence of command-line arguments that were actually used when the Prolog engine was formerly initialised. This method returns null if the Prolog engine has not yet been initialised, and thus may be used to test this condition.

  Returns:
    actual initialization arguments

### init

    public static boolean init(java.lang.String[] args)

  Initializes the Prolog engine, using the String argument parameters passed. This method need be called only if you want to both (i) initialise the Prolog engine with parameters other than the default ones and (ii) force initialisation to occur (rather than allow it to occur automatically at the first query). For parameter options, consult your local Prolog documentation. The parameter values are passed directly to initialization routines for the Prolog environment.

  This method must be called before making any queries.

  Parameters:
    `args` - Initialization parameter list

### init

    public static boolean init()

  Initialises the Prolog engine using the current default initialisation parameters, and returns 'true' (or 'false' if already initialised).

### halt

    public static void halt()

  Deprecated.

  Terminates the Prolog session.

  Note. This method calls the FLI halt() method with a status of 0, but the halt method currently is a no-op in SWI.

### version

    public static jpl.Version version()

  Returns (as a Version) an identification of this version of JPL.

  Returns:
    the running version of JPL.

### version_string

    public static java.lang.String version_string()

  Returns a String (eg "3.0.0-alpha") identifying this version of JPL.

  Returns:
    a String (eg "3.0.0-alpha") identifying this version of JPL.

### main

    public static void main(java.lang.String[] args)