ResourceBundle怎么读取jar外的资源文件?

时间:2022-02-08 12:24:10
如题,因为,资源文件需要根据客户不断的修改.
所以放在jar外面
那么getbundle(),怎么读取外部的资源文件么?
谢谢!!

10 个解决方案

#1


〔config.properties〕

[CMS properties]
cmsServerName=cms
cmsTemplateDirectoryName=template

[time out:minute]
time_out=300000

[administrator setting]
administrator=SA
admingroup=ADMINROLE

[web path setting]
innerresource=/AccessControl/jsp/innerresource/

[picture path setting]
picturePath=C:/picture/
[log path setting]
logPath=c:/log1/


ConfigBundle.java

package creator.config;

import java.util.MissingResourceException;
import java.util.ResourceBundle;

/**
 *
 * <p>Title: ConfigBundle.java</p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2004</p>
 * <p>Company: </p>
 * @author TanBo
 * @version 1.0
 */
public class ConfigBundle{
    private static ResourceBundle bundle;

    /**
     * init()
     */
    public ConfigBundle()
    {
    }

    /**
     * @function getString
     * @param s String
     * @return String
     */
    public static String getString(String s){
        String s1 = null;
        try{
            s1 = getResourceBundle().getString(s);
        }catch(MissingResourceException missingresourceexception){
            System.out.println("ConfigBundle:getString error!"+missingresourceexception.toString());
        }
        return s1;
    }

    /**
     * @function getResourceBundle
     * @return ResourceBundle
     */
    private static ResourceBundle getResourceBundle(){
        if(bundle == null)
            bundle = ResourceBundle.getBundle("creator.config.config");
        return bundle;
    }
}

#2


xxy802(孔明在世),
这位大哥,你的config.properties是在jar文件外部吗?
我去试试看

#3


对了,你的属性文件不是在jar文件外部,是在jar里面啊
你理解错了我的意思

#4


自己顶,怎么没人知道?

#5


你的做法很对,我们也是这样做的。
此问题非常简单,只要资源文件在classpath中,类就可以访问到,这个和类是不是打包到jar中无关

#6


资源文件在classpath中,那不是说还要改环境变量?

#7


可以了

#8


mark

#9


启动程序时set CLASSPATH=%CLASSPATH%;d:\javaResource;
如果你的资源文件就在d:\javaResource下
这样就行了。

#10



只要资源文件在classpath中,类就可以访问到,这个和类是不是打包到jar中无关
----------------------------

#1


〔config.properties〕

[CMS properties]
cmsServerName=cms
cmsTemplateDirectoryName=template

[time out:minute]
time_out=300000

[administrator setting]
administrator=SA
admingroup=ADMINROLE

[web path setting]
innerresource=/AccessControl/jsp/innerresource/

[picture path setting]
picturePath=C:/picture/
[log path setting]
logPath=c:/log1/


ConfigBundle.java

package creator.config;

import java.util.MissingResourceException;
import java.util.ResourceBundle;

/**
 *
 * <p>Title: ConfigBundle.java</p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2004</p>
 * <p>Company: </p>
 * @author TanBo
 * @version 1.0
 */
public class ConfigBundle{
    private static ResourceBundle bundle;

    /**
     * init()
     */
    public ConfigBundle()
    {
    }

    /**
     * @function getString
     * @param s String
     * @return String
     */
    public static String getString(String s){
        String s1 = null;
        try{
            s1 = getResourceBundle().getString(s);
        }catch(MissingResourceException missingresourceexception){
            System.out.println("ConfigBundle:getString error!"+missingresourceexception.toString());
        }
        return s1;
    }

    /**
     * @function getResourceBundle
     * @return ResourceBundle
     */
    private static ResourceBundle getResourceBundle(){
        if(bundle == null)
            bundle = ResourceBundle.getBundle("creator.config.config");
        return bundle;
    }
}

#2


xxy802(孔明在世),
这位大哥,你的config.properties是在jar文件外部吗?
我去试试看

#3


对了,你的属性文件不是在jar文件外部,是在jar里面啊
你理解错了我的意思

#4


自己顶,怎么没人知道?

#5


你的做法很对,我们也是这样做的。
此问题非常简单,只要资源文件在classpath中,类就可以访问到,这个和类是不是打包到jar中无关

#6


资源文件在classpath中,那不是说还要改环境变量?

#7


可以了

#8


mark

#9


启动程序时set CLASSPATH=%CLASSPATH%;d:\javaResource;
如果你的资源文件就在d:\javaResource下
这样就行了。

#10



只要资源文件在classpath中,类就可以访问到,这个和类是不是打包到jar中无关
----------------------------