################################################################################
# Copyright (C) 2014-2015, International Business Machines Corporation and
# others. All Rights Reserved.
################################################################################

# Eclipse installation location
# Specify the folder that contains eclipse.exe, for example: eclipse.home=C:/eclipse
#
# Note:
#      By default, this value is set by an environment variable 'ECLIPSE_HOME'.
#      You could uncomment below and specify the path in this file alternatively (recommended). 
#
#eclipse.home=

#
# Java 6 runtime jar location
# Specify jar file path(es) including Java runtime classes.
#
# Note: 
#   Java runtime classes are stored in multiple jar files in modern JREs.
#   To get the full list of jar files included in JRE, you can write a simple
#   code printing system property "sun.boot.class.path".
#
# For example:
#
# java.rt=C:/ibmjre6/bin/default/jclSC160/vm.jar;C:/ibmjre6/lib/annotation.jar;C:/ibmjre6/lib/beans.jar;\
#   C:/ibmjre6/lib/java.util.jar;C:/ibmjre6/lib/jndi.jar;C:/ibmjre6/lib/logging.jar;C:/ibmjre6/lib/security.jar;\
#   C:/ibmjre6/lib/sql.jar;C:/ibmjre6/lib/ibmorb.jar;C:/ibmjre6/lib/ibmorbapi.jar;C:/ibmjre6/lib/ibmcfw.jar;\
#   C:/ibmjre6/lib/rt.jar;C:/ibmjre6/lib/charsets.jar;C:/ibmjre6/lib/resources.jar;C:/ibmjre6/lib/ibmpkcs.jar;\
#   C:/ibmjre6/lib/ibmcertpathfw.jar;C:/ibmjre6/lib/ibmjgssfw.jar;C:/ibmjre6/lib/ibmjssefw.jar;\
#   C:/ibmjre6/lib/ibmsaslfw.jar;C:/ibmjre6/lib/ibmjcefw.jar;C:/ibmjre6/lib/ibmjgssprovider.jar;\
#   C:/ibmjre6/lib/ibmjsseprovider2.jar;C:/ibmjre6/lib/ibmcertpathprovider.jar;C:/ibmjre6/lib/management-agent.jar;\
#   C:/ibmjre6/lib/xml.jar;C:/ibmjre6/lib/jlm.jar;C:/ibmjre6/lib/javascript.jar
#
# NOTE: slashes must be forward slashes. Backslashes will NOT work as path separator.
#
# IF java.rt variable has embedded space(s)...
#   ...each element containing an embedded space java.rt must individually quoted and the elements separated by a semi-colon.
#   ex. "C:/Program Files/IBM/Java50JDK/jre/lib/vm.jar";"C:/Program Files/IBM/Java50JDK/jre/lib/core.jar"
#                                                     ^^^
#java.rt=
