JavaStation Client Software Guide

Chapter 4 JavaOS Properties

JavaOS properties are settings that control the behavior of the JavaOS operating system on the JavaStation computer. JavaOS properties are delivered to the JavaStation computer at bootup; they can be delivered by the DHCP server or in a file referenced by the DHCP server.

Two kinds of properties control JavaOS behavior: system properties and JavaOS properties. Generally, system properties control the operation of applets or of any Java applications built into the JavaOS image (such as a browser). JavaOS properties determine the resources used by the JavaOS software, such as the language and fonts of the interface and the printers available to the JavaStation.

This chapter lists the JavaOS and system properties by functional group and explains how to set properties.

JavaOS and System Properties

The tables below list all JavaOS and system properties. The properties are grouped by function. Each table includes the name of the property, its default value, and a description of what the property controls. All properties are JavaOS properties unless marked as system properties.

Property setting examples use the JavaOS property flags, such as -d. These property flags are described in Table 4-7.

General Properties

The following table lists general properties for setting up the JavaOS environment.

Table 4-1 JavaOS General Properties

Property Name 

Default Value 

Description  

javaos.mountlist

null 

A semicolon-separated list of pairs of network paths and local paths. After the user logs into the JavaStation, each remote file system is mounted onto the local file system. The syntax of each pair is: server:remote_path|local_path

For example, to enable localized keyboards, mount /REMOTE from the server and file system that has the JavaOS executable image, as follows:

-djavaos.mountlist=myserver:/export/root/javaos/classes|/REMOTE

See "Setting Mount Directories " for more details.

javaos.snmpSysContact

null 

This property sets the value that will be returned in the system Management Information Base (MIB) for the system contact field. It can be set with a string of your choice, which should be enclosed in quotes. Example: -djavaos.snmpSysContact="Bob"

javaos.snmpSysLocation

null 

This property sets the value that will be returned in the system MIB for the system Location field. It can be set with a string of your choice, which should be enclosed in quotes. Example: -djavaos.snmpSysLocation="Sun MPK14"

javaos.consoleHotKey

VK_PRINTSCREEN

This property sets the keyboard hotkey that activates the JavaStation console, which displays debugging information. The value of the property is the JDK(TM) virtual keycode name for the hotkey. The following codes are valid: 

  • VK_F1

  • VK_F2

  • VK_F3

  • VK_F4

  • VK_F5

  • VK_F6

  • VK_F7

  • VK_F8

  • VK_F9

  • VK_F10

  • VK_F11

  • VK_F12

  • VK_PRINTSCREEN

  • VK_UNDEFINED (to disable the console)

The value of this property is not case-sensitive; VK_PRINTSCREEN and vk_PrInTSCreen are equivalent.

javaos.login

true

If true, the JavaOS software displays a login screen after booting and before starting the initial application.

If false, the JavaOS software runs the main application as soon as it boots, without displaying a login screen. This means there is no user home directory, and no system properties are read from a properties file.

javaos.homedir

null 

This property specifies the NFS path JavaOS should mount if NIS is not used to find the path based on the user name. The NFS path is specified as hostname:/path.

This property is most often used to determine the directory to use for the properties file that is read by HotJava at startup. If the javaos.login property is set to false, javaos.homedir is not used.

javaos.alwaysUpdate

null 

This property specifies that JavaOS is always or never updated in the JavaStation computer's flash memory, regardless of the value of the JavaOS checksum. It is useful for public kiosks or other systems where user input is not expected. For more information, see Table 2-2.

javaos.allowGuest

false

If true, the login screen (if displayed at all) will contain a guest login button. Guest login requires no username or password, and no user directories are mounted.  

javaos.dns

true

When set to true, host name-to-address and address-to-host name resolution are performed using the DNS protocol. See also javaos.nis. If lookup using NIS is enabled also, NIS is attempted first, and DNS is attempted only if NIS lookup fails. See also javaos.hostaddrmap and javaos.hostnamemap.

javaos.hostnamemap

host. byname

The name of the NIS map used to perform host name-to-address resolution.  

javaos.hostaddrmap

host. byaddr

The name of the NIS map used to perform address-to-host name resolution.  

javaos.homedirmap

auto.home(sought first),

auto_home

If NIS is enabled, this property is used to set the name of the NIS map used by the JavaOS software to determine a user's home directory.  

javaos.nis

true

When set to true, login authentication, host name-to-address resolution and address-to-host name resolution are performed using the NIS protocol. See also javaos.dns. If lookup using DNS is also enabled, NIS is attempted first, and DNS is attempted only if NIS fails.

javaos.rap

false 

If set to true, the JavaOS software uses Remote Authentication Protocol (RAP) instead of NIS for login authentication.

javaos.rap.server

null 

Set to the IP address of the RAP server. This property is ignored unless javaos.rap is set to true.

Application Loading Properties

The properties listed below control selection and loading of the main application on the JavaStation after the user logs in. For instructions on using these properties, see Chapter 5, Dynamically Loading Applications .

Table 4-2 JavaOS Application Loading Properties

Property Name 

Default Value 

Description  

javaos.apps

null 

If defined, the JavaOS software launches a simple point-and-click Application Launcher window. This property should be set to the URL of an HTML document that lists the applications to display.  

javaos.mainProgram

sun.applet.

AppletViewer

Set to the name of the application's main class.

javaos.mainHomeprop

appletviewer

Set to the name of the property specifying the application's root directory. For example, HotJava Views uses the hotjava.home property to specify its root directory. Other applications may have different property names. When the virtual file system is created, this property is set to enable the application to find its files. See "To Deliver a Single Application " for more information.

javaos.mainZip

null  

Set to the name of the archive containing the application files.  

Video Resolution Properties

The table below lists properties that control video resolution on the JavaStation user's screen.

Table 4-3 JavaOS Video Resolution Properties

Property Name 

Default Value 

Description  

javaos.fbDimensions

null 

Specifies a new frame buffer resolution to be set at boot time. The syntax of resolution parameters is widthxheightxdepth@vfreq, where depth is optional. Currently, only 8-bit depth is supported. For example,

-djavaos.fbDimensions=800x600x8@60

javaos.fbDimensionsPrompt

true

If javaos.fbDimensions is specified, the user will be prompted by a Video Mode Confirmation dialog. If the user selects OK, the video mode is set to the newly specified mode. The user must then accept the new video mode by selecting YES. If they fail to select YES within a 10-second period or if they select NO, the video mode reverts to its original mode.

If this property is set to false, the confirmation window is disabled.

User Properties

The table below lists miscellaneous user properties that affect JavaOS operation. Most are related to localization. Certain settings cause other settings to be assumed. For example, setting user.region to ja causes the system to assume the JST time zone, even if user.timezone is not defined.

Table 4-4 JavaOS User Properties

Property Name 

Default Value 

Description 

user.timezone

null 

This system property tells the Java date and time API the time zone in which the JavaStation system is located. Example: -Duser.timezone=PST. Valid time zones are as follows (this list is from java.util.TimeZone.) The default time zone is GMT.

  • GMT - Greenwich Mean Time

  • ECT - European Central Time

  • EET - Eastern European Time

  • ART - (Arabic) Egypt Standard Time

  • EAT - Eastern African Time

  • MET - Middle East Time

  • NET - Near East Time

  • PLT - Pakistan Lahore Time

  • IST - India Standard Time

  • BST - Bangladesh Standard Time

  • VST - Vietnam Standard Time

  • CTT - China Taiwan Time

  • JST - Japan Standard Time

  • ACT - Australia Central Time

  • AET - Australia Eastern Time

  • SST - Solomon Standard Time

  • NST - New Zealand Standard Time

  • MIT - Midway Islands Time

  • HST - Hawaii Standard Time

  • AST - Alaska Standard Time

  • PST - Pacific Standard Time

  • PNT - Phoenix Standard Time

  • MST - Mountain Standard Time

  • CST - Central Standard Time

  • EST - Eastern Standard Time

  • IET - Indiana Eastern Standard Time

  • PRT - Puerto Rico and US Virgin Islands Time

  • CNT - Canada Newfoundland Time

  • AGT - Argentina Standard Time

  • BET - Brazil Eastern Time

  • CAT - Central African Time

user.language

en

This system property must be set to a valid, lowercase, ISO-639 Language Code. Exceptions to this rule are to use cs for Czech and iw for Hebrew, as the current Language Codes havebeen updated since the JDK1.1 was implemented. Valid codes are described in Table 10-2. Example: -Duser.language=en

user.country

null 

This system property must be set to a valid ISO-3166 Country Code. Valid codes are described in Table 10-3. Example: -Duser.country=US

Printing Properties

The table below lists properties related to printing. Instructions for using these properties are in Chapter 9, JavaStation Peripherals .


Note -

Due to space constraints, property names may take up two or more lines in the table below. However, they should be typed on one line only. For example, the second property below is javaos.printservice.lpd.printers.


Table 4-5 JavaOS Printing Properties

Property Name 

Default Value 

Description  

javaos.printservice.NIS.mapname

printers. conf. byname

The name of the NIS map used to locate network printers.  

javaos.printservice.lpd. printers

null 

A semicolon-separated list of printers available for use by the lpd printing client. The format of each entry is printer@server.

javaos.printdialog. alwaysShowPrinters

null 

A semicolon-separated list of all the printers available from this host. This property enables administrators to add access to the printer nearest a given JavaStation. The syntax of the printer name is print_service:printer@server. Example:

-djavaos.printdialog.alwaysShowPrinters =lpd:raw@kona;lpd:ps@kona; NIS:droid@fred

javaos.printers.selected

null 

A semicolon-separated list of the printers the user has selected to appear in print dialogs. The format is the same as for alwaysShowPrinters. This is a system property. Example: -Djavaos.printers.selected=raw@kona; ps@kona;droid@fred

javaos.printservice. local.params.serial-port

null 

This property sets the communications parameters for the serial port.  

The port portion of this property is the name of a serial port, which can be:

  • SerialA or SerialB for an on-board JavaStation serial port (Serial B is not available on any JavaStation model at this writing)

  • One of SerialP1 through SerialP8 for a virtual serial port enabled by the multiport serial card (MPSC), which is not available on any JavaStation model at this writing

The syntax of the communication parameters is baud_rate:data_bits:stop_bit: parity: flow_control. For example: -djavaos.printservice.local.params. serial-SerialA=57600:8:1:none:hh

Valid values for each parameter are as follows: 

  • baud_rate: 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200

  • data_bits: 5, 6, 7, 8

  • stop_bits: 1, 1.5, 2

  • parity: none, odd, even

  • flow_control: none, {s,h}{s,h} You can disable flow control by specifying none. Otherwise, specify an {input}{output} pair by selecting from Xon/Xoff (s) or RTS/CTS (h) for input and output.

javaos.printservice. local.params.parallel-port

false 

The port portion of this property is the name of a parallel port. A parallel port is not available on any JavaStation model at this writing.

When set to true, this property enables the parallel port. For example: 

-djavaos.printservice.local.params. parallel-LPT1=true  

Localization Properties

The table below lists properties strictly related to localization.


Note -

The User Properties in Table 4-4 and javaos.mountlist in Table 4-1 are also required for localization.


Table 4-6 JavaOS Localization Properties

Property Name 

Default Value 

Description  

javaos.font.properties.home

/FONTS

The local path name of a directory that contains a lib subdirectory. The font.properties files are read from this lib directory. The javaos.mountlist property is typically used to associate some server path with the /FONTS directory to enable the JavaOS software to load and use fonts from a server. For more information, see "Setting Mount Directories ".

javaos.im.compose.deadkeys

false

This property changes the following keys into accent 

keys: '(single quote) "(double quote) `(grave accent) and 

^(circumflex). Use this property if your keyboard is a 

U.S. keyboard, you are not setting the javaos.kbd property, and you want to produce accented characters

for ISO Latin locales. If set to true, the above keys do not produce a value of their own, but cause the next key pressed to be an accented character. For example, pressing ` plus "a" produces á. If this property is false, these keys generate their expected values. For more information on this and the following three properties, see "Enabling Special Characters on the U.S. Keyboard".

javaos.im.compose_arISO8859_6 Enables the U.S. keyboard to produce Arabic input. The Ctrl-t key sequence toggles the keyboard state between Arabic and U.S. ASCII modes. A status window displays the current mode.
javaos.im.compose_iwISO8859_8 Enables the U.S. keyboard to produce Hebrew input. The Ctrl-t key sequence toggles the keyboard state between Hebrew and U.S. ASCII modes. A status window displays the current mode.
javaos.im.compose_thTIS620 Enables the U.S. keyboard to produce Thai input. The Ctrl-t key sequence toggles the keyboard state between Thai and U.S. ASCII modes. A status window displays the current mode.

javaos.im.url

null 

A semicolon-delimited list of the Solaris machines running the language engines to be used by JavaStation computers. A Microsoft Windows95 or Microsoft NT system can also be used if an Internet/Intranet Input Method Protocol (IIIMP) server from Sun for the PC server is installed on it. Set as follows:  

iiimp://hostname:port;hostname:port...

where: 

  • hostname is a system running a language engine

  • port is the port at which the engine is located. By default, JavaStation computers use port 9010. For more information, see "Setting the Input Method ".

javaos.loginLocaleList

en_US

A semicolon-separated list of the locales to be presented as choices to the user at login. A locale is defined using one of the ISO-639 standard two-letter codes that define user.language followed by an underscore character "_" and one of the ISO-3166 standard two-letter codes that define user.country. For example:

-djavaos.loginLocaleList=\ en_US;fr_FR;ja_JP;zh_CN;zh_TW

For more information, see "Modifying the Languages Displayed at Login".

javaos.kbd

null 

By default, the JavaOS software assumes the keyboard is a U.S. keyboard. To enable a different keyboard, use the syntax javaos.kbd=keyboard. Possible values for keyboard are provided in "Adding a Keyboard".

javaos.im.lookup.button

false

This property controls how the JavaStation user selects characters when using a Korean, Japanese, or Chinese input method. If false, when the list of candidate characters is displayed, letters are used to indicate each choice, and the user selects a choice by typing the letter. If true, letters are replaced with buttons so that the user clicks on a button to pick a choice. Note that enabling this option will negatively impact user input performance. For more information, see "Setting the Input Method ".

javaos.im.status.fixpopup

false 

Setting this property to true enables a pop-up window with input method status information. For more information, see "Setting the Input Method ".

file.encoding

8859_1

This system property sets the character set to be used when files are saved. By default it is set to the 8859-1 character set (Roman alphabet). Supported character sets are listed in Table 10-5.

doc.url null

This system property enables JavaStation users to access HotJava Browser documentation. It should be set as follows: 

-Ddoc.url=file:/REMOTE/hotjava

HotJava Browser automatically locates the document translation for the current locale. 

This property is not applicable for any JavaStation application other than HotJava Browser.  

Setting Properties


Note -

Only experienced Solaris system administrators should set JavaOS properties using the following methods. Inexperienced Solaris users should use the Netra j software. For information on Netra j, go to http://www.sun.com/netra-j or refer to the Netra j 3.0 Administrator's Guide.


You can set the properties that control JavaOS operation on the JavaStation in two places:

The second option is preferable because the total length of DHCP Vendor Options is limited to 255 characters. If you exceed this length, the remaining text is lost and the JavaStation computer will not receive all of the options. No errors are reported by the dhcp daemon, but incorrect behavior is viewed on the JavaStation computer.

In contrast, the text file can have any length.

If you set a property in the DHCP options and in a text file, the value set in the text file will be used because it was the last value delivered to the JavaStation computer.

Syntax

Each property setting must use one of the flags in the table below. There is no space between each flag and its value. Note that certain flags are used only for JavaOS properties, while others are used only for system properties.

Table 4-7 Property Flags

Flag 

Syntax  

Definition 

-d

-dJavaOS_property=value

Used to define a JavaOS property. The property name and value are stored in the JavaOS properties object. The names of properties set with this option always begin with javaos. Example: -djavaos.kbd=UKPS2

-D

-Dsystem_property=value

Used to define a system property. The system property and value are stored in the global system properties object. Example: -Duser.timezone=PST.

-a

-aJavaOS_property=value

The JavaOS property is set to the given value if it has never been set before. If the property already has a value, then its current value is appended with a semicolon and the value. Example: -ajavaos.printservice.lpd.printer=printer2

This example sets the property javaos.printservice.lpd.printer to printer2 if the property has no current value. If the property already has a value (say, printer1), the new value is appended (printer1;printer2).

This flag is useful if you are building the value of a property from multiple places using the -i option below. Note that this property can itself be a semicolon-separated list of values; the entire list is added or appended as described above.

-A

-Asystem_property=value

This works just like the -a option, except that it sets system properties.

Note that -a and -A are equivalent to -d and -D, except for the append behavior.

-u

-uJavaOS_property

Used to undefine a JavaOS property. 

-U

-Usystem_property

Used to undefine a system property. 

-i

-iHTTP_URL

The HTTP URL is expanded and the file referenced by the URL is itself evaluated as if it were a JavaOS command line. Properties are stored one per line in this file. One file can use -i to include another file. There is currently no check on infinite recursion.

Properties will be interpreted as the JavaOS command line, which is a formatted text string of any length that is interpreted when the JavaOS software boots. The command line can include:

The syntax of the command line is as follows:

prop_setting1 prop_setting2... prop_settingn -- arg1 arg2... argn

where prop_setting is a JavaOS property setting and arg is an argument. Property settings and arguments are separated by two contiguous hyphens.

Referencing a Properties File in the DHCP Vendor Options

This is the preferred method for setting JavaOS properties because dhcptab entries are limited to 255 characters.

Use the -i flag described in the preceding table in a dhcptab macro (see Chapter 2, JavaStation Boot Process: Theory of Operations ). The relevant line of the macro should have the following syntax:


JOScmd1="-ihttp://hostname[:port_number]/filename"

The text file should be located in the web server root directory. It should contain property settings using the flags described in the preceding table. It can also include arguments. Each property setting and argument should be typed on a separate line, with the separator hyphens mentioned above on their own line, as follows:


-Duser.timezone=PST
-djavaos.login=false
--
http://www.sun.com

The following is a sample properties text file.


# Sample text file of JavaOS properties
###############################################################
# General setup
############################################################

# Define the key that brings up the screen console (PRINTSCREEN
# is the default)
-djavaos.consoleHotKey=VK_PRINTSCREEN

# Set up values that will be returned by SNMP in the System MIB
-djavaos.snmpSysContact=JavaOS group, js_team@ignacio
-djavaos.snmpSysLocation=JavaSoft

###############################################################
# Locale-specific settings
###########################################################

# Set Server for /REMOTE file system
-ajavaos.mountlist=fred:/export/root/javaos/classes|/REMOTE
# We're all on the US West Coast...
-Duser.timezone=PST

# Set list of countries we support, English first
# (The order doesn't matter, but the Login window shows them
# in the order in which they appear in the property list.)
-djavaos.loginLocaleList=en_US

# Add the European Locales
-ajavaos.loginLocaleList=fr_FR;de_DE;it_IT;sv_SE;es_ES

# Add the Asian Locales
-ajavaos.loginLocaleList=ja_JP;ko_KR;zh_CN;zh_TW
###############################################################
# FONT-specific settings
################################################################

# Set the server location for where to find fonts for the 
# /FONTS directory
-ajavaos.mountlist=fred:/export/root/javaos/fonts|/FONTS 


###############################################################
# Printing properties
################################################################

# Always show these printers
-djavaos.printdialog.alwaysShowPrinters=NIS:dirk@fred;
NIS:rita@scorpio

# The name of the NIS map for printers (this is the default, so it's
# not really necessary)

-djavaos.printservice.NIS.mapname=printers.conf

# Set up the hardware parameters for locally connected printers
-djavaos.printservice.local.params.serial-Serial=57600:8:1:none:hh 

###############################################################
# set doc.url
# This allows us to read the HotJava Browser User's Guide from 
# a server.
################################################################ 
-Ddoc.url=http://fred.eng/JavaOS/LunaApps/