Java 尝试获取未定义的sun.runtime.Name时出错

Java 尝试获取未定义的sun.runtime.Name时出错,java,coldfusion,Java,Coldfusion,我正试图从我的ColdFusion网站内部获取一些信息 struct function get_site_info() output="false" { var oSystem = createObject('java','java.lang.System'); var jremodel = oSystem.getProperty("sun.arch.data.model"); var jrename = oSystem.getProperty("sun.runtime.nam

我正试图从我的ColdFusion网站内部获取一些信息

struct function get_site_info() output="false"  {

var oSystem = createObject('java','java.lang.System');
var jremodel    = oSystem.getProperty("sun.arch.data.model");
var jrename     = oSystem.getProperty("sun.runtime.name");
var jreversion  = oSystem.getProperty("sun.runtime.version");



var stResult = {CFVERSION = server.ColdFusion.ProductVersion, 
    CFLEVEL = server.ColdFusion.ProductLevel,
    JRENAME = jrename, // Error happens here
    JREVERSION = jreversion };

return stResult;
}   
错误消息是

Variable JRENAME is undefined.

没有“sun.runtime.name”这样的属性(或者确实是sun.runtime.anything)

您可能需要java.runtime.name


要查看系统的所有可用属性,请执行以下操作:

<cfdump var=#createObject('java','java.lang.System').getProperties()# />

没有“sun.runtime.name”这样的属性(或者确实是sun.runtime.anything)

您可能需要java.runtime.name


要查看系统的所有可用属性,请执行以下操作:

<cfdump var=#createObject('java','java.lang.System').getProperties()# />


如果在从操作系统为其分配值后添加写输出(“jrename是”&jrename&“并且已定义”)会发生什么情况?jrename没有值-如果指定一个不存在的键,则getProperty返回null。另外,您可以通过提供默认ie
getProperty(名称,默认值)
来避免为null。在这种情况下,错误可能是一件好事。但是对于可选属性,默认值很方便。如果在从OSSystem为其赋值后添加一个writeoutput(“jrename is”&jrename&“is defined”),会发生什么情况?jrename没有值-如果指定一个不存在的键,getProperty将返回null。另外,您可以通过提供默认ie
getProperty(name,default)
来避免空值。在这种情况下,错误可能是一件好事。但是,对于可选属性,默认值可以派上用场。