Next Previous Up Contents
Next: JDBC Configuration
Up: Java Options
Previous: Memory Size

#### 10.2.3 System properties

System properties are a way of getting information into Java (they are the Java equivalent of environment variables). The following ones have special significance within TOPCAT:

`apple.laf.useScreenMenuBar`
  On the Apple Macintosh platform only, this property controls whether menus appear at the top of the screen as usual for Mac, or at the top of individual windows as usual for Java. By default when using Java 1.5 or later it is set to `true` for TOPCAT, so menus mostly appear at the top of the screen (though it's not true to say that TOPCAT obeys the Mac look and feel completely); if you prefer the more Java-like look and feel, set it to `false`. There are bugs with this feature in Apple's Java 1.4 JRE, so it's set false by default in that case, but you can try setting it true at your own risk if you like.
`java.io.tmpdir`
  The directory in which TOPCAT will write any temporary files it needs. This is usually only done if the `-disk` flag has been specified (see Section 10.1).
`jdbc.drivers`
  Can be set to a (colon-separated) list of JDBC driver classes using which SQL databases can be accessed (see Section 10.3).
`jel.classes`
  Can be set to a (colon-separated) list of classes containing static methods which define user-provided functions for synthetic columns or subsets. (see Section 7.9).
`jel.classes.activation`
  Can be set to a (colon-separated) list of classes containing static methods which define user-provided functions for use in custom activation expressions. (see Section 7.9).
`jsamp.hub.profiles`
  This property determines what profiles a SAMP hub will use if you run an internal or external hub from TOPCAT (either with the `-hub`/`-exthub` flag or from the GUI). The value is a comma-separated list of profile specifiers; options are "`std`" for Standard Profile, "`web`" for Web Profile or the name of a class implementing the `org.astrogrid.samp.hub.HubProfile` interface. The default setting runs just a Standard Profile hub, but, for instance, setting it to "`std,web`" would run a Web Profile as well. Note you should include `std` in the list, otherwise TOPCAT will not be able to talk to the hub. See the JSAMP documentation for more detail.
`jsamp.localhost`
  Sets the hostname by which the local host is to be identified in URLs, for instance server endpoints. If unset, the default is currently the loopback address "`127.0.0.1`". However, if this property is set (presumably to the local host's fully- or partly-qualified domain name) its value will be used instead. Two special values may also be set: "`[hostname]`" for the host's fully qualified domain name, and "`[hostnumber]`" for the IP number.
`jsamp.server.port`
  Gives a preferred port number on which to open TOPCAT's internal HTTP server, used for SAMP communications amongst other things. If this port is unavailable, some other port will be used instead.
`jsamp.xmlrpc.impl`
  Indicates which pluggable XML-RPC implementation should be used for SAMP communications. By default an internal implementation is used. If it is set to "`xml-log`" or "`rpc-log`" then all XML-RPC communications will be logged in very or fairly verbose terms respectively to standard output. The classname of an `org.astrogrid.samp.xmlrpc.XmlRpcKit` implementation may be given instead to use a custom implementation.
`lut.files`
  Can be set to a (colon-separated on *nix, semicolon-separated on Windows) list of files giving custom lookup tables for auxiliary axis and density map colour maps. Each file should be a text file containing a number of space-separated lines, each containing red, green, blue samples in the range 0-1. For instance the file

             1.0  1.0  0.0
             1.0  0.0  1.0

  would give a colour map that fades from yellow to magenta. Any number of samples may be given; the scale is interpolated.
`mark.workaround`
  If set to "true", this will work around a bug in the `mark()`/`reset()` methods of some java `InputStream` classes. These are rather common, including in Sun's J2SE system libraries. Use this if you are seeing errors that say something like "`Resetting to invalid mark`". Currently defaults to "false".
`myspace.cache`
  If set to "true", this will prevent directories in the MySpace file browser from being read more than once. This is a workaround for MySpace performance problems at time of writing (April 2006); setting it true may lead to out of date file listings in MySpace, but it may be much faster. This behaviour may be withdrawn in future versions if MySpace performance improves. Currently defaults to "false".
`star.connectors`
  Can be set to a (colon-separated) list of classes which provide access to remote filespace implementations. Thus-named classes should implement the `uk.ac.starlink.connect.Connector` interface which specifies how you can log on to such a service and provides a hierarchical view of the filespace it contains.
`startable.load.dialogs`
  Can be set to a (colon-separated) list of custom table load dialogue classes. Briefly, you can install your own table import dialogues at runtime by providing classes which implement the `uk.ac.starlink.table.gui.TableLoadDialog` interface and naming them in this property. See STIL documentation for more detail.
`startable.readers`
  Can be set to a (colon-separated) list of custom table format input handler classes (see Section 4.1.3).
`startable.storage`
  Can be set to determine the default storage policy. Setting it to "`disk`" has basically the same effect as supplying the "`-disk`" argument on the TOPCAT command line (see Section 10.1). Other possible values are "`adaptive`", "`memory`", "`sideways`" and "`discard`"; see SUN/252. The default is "`adaptive`", which means storing smaller tables in memory, and larger ones on disk.
`startable.writers`
  Can be set to a (colon-separated) list of custom table format output handler classes (see Section 4.1.3).
`user.dir`
  Sets the current working directory. This determines the default from which the file browsers will start.
`votable.strict`
  Set `true` for strict enforcement of the VOTable standard when parsing VOTables. This prevents the parser from working round certain common errors, such as missing `arraysize` attributes on FIELD/PARAM elements with `datatype="char"`. False by default.
`votable.namespacing`
  Determines how namespacing is handled in VOTable documents. Known values are "`none`" (no namespacing, xmlns declarations in VOTable document will probably confuse parser), "`lax`" (anything that looks like it is probably a VOTable element will be treated as a VOTable element) and "`strict`" (VOTable elements must be properly declared in one of the correct VOTable namespaces). May also be set to the classname of a `uk.ac.starlink.votable.Namespacing` implementation. The default is "`lax`".

To define these properties on the command line you use the `-D` flag, which has the form

        -D<property-name>=<value>

If you're using the TOPCAT startup script, you can write something like:

        topcat -Djdbc.drivers=org.postgresql.Driver ...

or if you're using the `java` command directly:

        java -Djdbc.drivers=org.postgresql.Driver ...

Alternatively you may find it more convenient to write these definitions in a file named `.starjava.properties` in your home directory; the above command-line flag would be equivalent to inserting the line:

        jdbc.drivers=org.postgresql.Driver

in your `.starjava.properties` file.

Next Previous Up Contents
Next: JDBC Configuration
Up: Java Options
Previous: Memory Size

TOPCAT - Tool for OPerations on Catalogues And Tables
Starlink User Note253
TOPCAT web page: http://www.starlink.ac.uk/topcat/
Author email: m.b.taylor@bristol.ac.uk
Mailing list: topcat-user@bristol.ac.uk