Skip to main content
Inspiring
February 25, 2010
Question

Where does CF 8 store JVM args?

  • February 25, 2010
  • 2 replies
  • 3308 views

Hi,  I just rebuilt a CF 8 server and after installing and configuring reviewed the server settings.  Below is a part of the JVM Details section.

User Home is set to "C:\Documents and Setting\TEMP".  I want to change this to "C:\Documents and Setting\Default User"  but cannot figure how to do this.   Where/how does CF8 store these values.    I checked all of the .config, .properties and .xml files withing the Coldfusion8 folder that was created during the install.

My server is running as a stand-alone server.

Any help would be appreciated.

java Version1.6.0_04 
Java VendorSun Microsystems Inc. 
Java Vendor URLhttp://java.sun.com/ 
Java HomeC:\ColdFusion8\runtime\jre 
Java File EncodingCp1252 
Java Default Localeen_US 
File Separator
Path Separator
Line SeparatorChr(13) 
User NameSYSTEM 
User HomeC:\Documents and Settings\TEMP 
User DirC:\ColdFusion8\runtime\bin 
Java VM Specification Version1.0 
Java VM Specification VendorSun Microsystems Inc. 
Java VM Specification NameJava Virtual Machine Specification 
Java VM Version10.0-b19 
Java VM VendorSun Microsystems Inc. 
Java VM NameJava HotSpot(TM) Server VM 
Java Specification Version1.6 
Java Specification VendorSun Microsystems Inc. 
Java Specification NameJava Platform API Specification 
    This topic has been closed for replies.

    2 replies

    February 26, 2010

    You've got CF configured to use the default system account.  Hence it grabbing the temp directory in documents and settings.

    Consider assigning the CF service either a domain wide or local account to run under.  It'll then get a user directory assigned to it and it'll use that one from then on.

    pwp69Author
    Inspiring
    February 26, 2010

    The situation is is we have two identical 2003 servers running Cf8.

    One of them has:

    User NameSYSTEM 
    User HomeC:\Documents and Settings\TEMP 
    User DirC:\ColdFusion8\runtime\bin 

    The other has:

    User NameSYSTEM 
    User Home C:\Documents and Settings\Default User  
    User DirC:\ColdFusion8\runtime\bin 

    Both are using the default system account.

    Why is the first set to '\TEMP while the second is set '\Default User'

    I am trying to get the first to use '\Default User' but can't find where/how it is defined.

    thx for you help.

    Inspiring
    March 2, 2010

    I am trying to get the first to use '\Default User' but can't find where/how it is defined.

    The default user.home setting is determined by the o/s.  IIRC, there is a slighlty convoluted set of rules determining the initial value. On my XP box, it is the %USERPROFILE% value.  You can dump all evironment variables from CF using:

    <cfset env = createObject("Java", "java.lang.System").getEnv()>
    <cfdump var="#env#">

    From the java.home value it looks like you are using the default jvm and correct jvm.config file. But as mentioned, make sure you are setting that value in the JVM arguments section using:   -Duser.home=....   If you are having problems because the path has a space in it, you could always try using the DOS short name:      C:/DOCUME~1/DEFAUL~1

    Inspiring
    February 25, 2010

    In its jvm.config file, which is - by default - in the [JRun]/bin dir on a multi-server install, and... umm... somewhere else on a stand-alone install.  [ColdFusion]runtime/bin rings a bell, but I never use stand-alone installs, so cannot check, I'm afraid.

    --

    Adam

    pwp69Author
    Inspiring
    February 25, 2010

    Thank you for the quick response.  I found a \ColdFusion8\runtime\bin\jvm.config. Below is the contents.

    I don't see any of the JVM Details values in the file specifically "User Home".

    #
    # VM configuration
    #
    # Where to find JVM, if {java.home}/jre exists then that JVM is used
    # if not then it must be the path to the JRE itself
    java.home=C:/ColdFusion8/runtime/jre
    #
    # If no java.home is specified a VM is located by looking in these places in this
    # order:
    #
    #  1) bin directory for java.dll (windows) or lib/<ARCH>/libjava.so (unix)
    #  2) ../jre
    #  3) registry (windows only)
    #  4) JAVA_HOME env var plus jre (ie $JAVA_HOME/jre)
    #

    # Arguments to VM
    java.args=-server -Xmx512m -Dsun.io.useCanonCaches=false -XX:MaxPermSize=192m -XX:+UseParallelGC -Dcoldfusion.rootDir={application.home}/../  -Dcoldfusion.classPath={application.home}/../lib/updates,{application.home}/../lib,{application.home}/../gateway/lib/,{application.home}/../wwwroot/WEB-INF/cfform/jars -Dcoldfusion.libPath={application.home}/../lib

    #
    # commas will be converted to platform specific separator and the result will be passed
    # as -Djava.ext.dirs= to the VM
    java.ext.dirs={jre.home}/lib/ext

    #
    # where to find shared libraries
    java.library.path={application.home}/../lib,{application.home}/../jintegra/bin,{application.home}/../jintegra/bin/international
    system.path.first=false

    #
    # set the current working directory - useful for Windows to control
    # the default search path used when loading DLLs since it comes
    # before system directory, windows directory and PATH
    java.user.dir={application.home}/../../lib

    # JVM classpath
    java.class.path={application.home}/servers/lib,{application.home}/../lib/macromedia_drivers.jar,{application.home}/lib/cfmx_mbean.jar,{application.home}/lib

    Inspiring
    February 25, 2010

    Yeah.  That's because by default, it uses the default value, ie: it's not specified.  You should just be able to set user.home just like how it's setting java.home.

    --

    Adam