Java 如何在Coldfusion中使用org.apache.commons.configuration

Java 如何在Coldfusion中使用org.apache.commons.configuration,java,coldfusion,apache-commons-config,Java,Coldfusion,Apache Commons Config,我试图利用PropertiesConfiguration在coldfusion中操作属性文件。使用org.apache.commons.configuration 1.10版 propertyFile = "usergui.properties"; config = createObject("java","org.apache.commons.configuration.PropertiesConfiguration").init(propertyFile); 我将使用匹配函数init,它

我试图利用PropertiesConfiguration在coldfusion中操作属性文件。使用org.apache.commons.configuration 1.10版

propertyFile = "usergui.properties";

config = createObject("java","org.apache.commons.configuration.PropertiesConfiguration").init(propertyFile);

我将使用匹配函数init,它接受一个字符串。我尝试过使用java.io.file

我发现问题在于我没有包含所有的依赖项。哼

function updatePropFile(string propFile, struct propStruct, struct removeStruct){
    propertyFile = propFile;
    javaFile = createObject("java", "java.io.File").init(propertyFile);
    fileStream = createObject("java", "java.io.FileInputStream").init(javaFile);


    config = createObject("java","org.apache.commons.configuration.PropertiesConfiguration").init(javaFile);

    configLayout = config.getLayout();

    for(key in propStruct){
        if(config.containsKey(key)){
            config.setProperty(key, propStruct[key]);
        }else{
            config.addProperty(key, propStruct[key]);
        }
    }

    for(key in removeStruct){
        if(config.containsKey(key)){
            /* clear prop and add as comment */
            value = config.getProperty(key).toString();
            config.clearProperty(key);
            config.addProperty('##'&key, key & "=" & value);
        }
    }

    configLayout.save(createObject("java", "java.io.FileWriter").init(propFile, false));
}

“如何使用”这个问题对S.O.来说有点宽泛。最好把它缩小到一个特定的问题,比如“我试图做X。我尝试了代码Y,但它抛出了错误Z”。你不能使用ColdFusions属性函数吗?很好的跟进!两个小建议1)不要忘记本地化所有函数局部变量2)虽然相对文件路径(即“usergui.properties”)可以工作,但通常绝对路径更可取,因此文件保存的确切位置很清楚。。3) 另外,如果使用不带参数的
init()
,然后使用
setPath()
(设置源代码),则加载和保存也会稍微困难一些。然后您可以调用
load()
save()
,而不需要额外的java.io文件对象。如果函数可以被多个线程访问,请注意同步。看见