jar包找不到配置文件|jar包里面的代码如何读取jar包中的配置文件

❶ struts.xml里配置文件,用include配置,总是提示找不到文件,前提jar包已经引入,并在classpath里配置。

应该是路径不正确,如果路径正确的话,按ctrl鼠标就能点进去找到该xml。

❷ java自定义classloader在加载jar包和classes的时候,classloader不能找到classpath下的配置文件

设我们有一个hello.jar文件,里面有一个Util类,我们希望在运行期调将这个jar包放入到我们运行环境并且调用里面的Util.getVersion方法。怎么实现?在java中,我们的类都是通过ClassLoader来加载的,同时ClassLoader具有层级关系,当某个类找不到时,它会去他的父类加载器去寻找,如果依然找不到,就抛出ClassNotFoundException了。为了动态加载hello.jar里面的Util类,我们需要将这个jar包放入到我们的类加载器中去,然后再获取里面的类。如下面的代码。//位于hello.jarpackagecom.flyingzl;publicclassUtil{publicstaticvoidgetVersion(){System.out.println("javaversion:"+System.getProperty("java.version"));}}importjava.io.File;importjava.lang.reflect.Method;importjava.net.URL;importjava.net.URLClassLoader;publicclassMain{publicstaticvoidmain(String[]args){URL[]urls=newURL[]{};MyClassLoaderclassLoader=newMyClassLoader(urls,null);try{classLoader.addJar(newFile("c:/hello.jar").toURI().toURL());Class<?>clazz=classLoader.loadClass("com.flyingzl.Util");Methodmethod=clazz.getDeclaredMethod("getVersion");method.invoke(null);classLoader.close();}catch(Exceptione){e.printStackTrace();}}{publicMyClassLoader(URL[]urls){super(urls);}publicMyClassLoader(URL[]urls,ClassLoaderparent){super(urls,parent);}publicvoidaddJar(URLurl){this.addURL(url);}}}注意:这里仅仅是为了展示如何动态加载jar包,代码写得很粗,生产代码需要有更完善的异常处理。我们只关心如何动态加载jar包即可。动态加载jar包,需要用到java.net.URLClassLoader这个类,它可以指定一个路径将jar包或者classes文件加载到类空间。加载完毕后,直接调用loadClass就可以加载指定的类,然后通过反射生成实例或者调用方法即可。其实,Tomcat等服务器也利用了此思路,比如每一个web应用启动时,它都会自动加载其下的lib文件夹下的jar包。运行程序,我们就可以看到程序正常输出:javaversion:1.7.0_03

❸ jar包中的类读取配置文件的路径问题,求大家帮帮忙

应该是直接就可以读取的。因为你的配置文件和Jar文件在同一个目录下,如果你的应用能找到jar文件,也就是可以找到配置文件。不过你要在classpath路径中添加*.properties。

❹ java使用配置文件的问题

1.src下的和classes下面的配置文件是一样的,为什么不可以只读取src下面的一般来说,你给别人做了一个软件,他人使用的是你编译好的软件包,这时是不包含src目录的,如果你那样的,运行时就会找不到配置文件。二,我之前的是取的src下面的配置文件,他修改的使用的是classes下的配置文件是的, 如果你的类打成jar包,这个就是包里的文件了。

❺ jar包中配置文件的路径

Propertiesprop=newProperties();prop.load(newFileInputStream("D://conf//a.properties"));

❻ java 程序打包为jar发布后,读取配置文件路径出错 ,怎样获取配置文件路径

给你个例子,读取config.properties文件。文件内容(值自己加)如下:TestHosts = FormalHosts = TestConfig = FormalConfig =HostsPath = ConfigPath = 读取文件的类如下:import java.io.BufferedInputStream;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStream;import java.io.UnsupportedEncodingException;import java.util.*;public class EvnConfig{ public static Properties PROPERTIES = new Properties(); static{ String proFilePath = System.getProperty("user.dir")+"/config.properties"; //System.out.println(proFilePath); //InputStream propertiesStream = EvnConfig.class.getClassLoader().getResourceAsStream(proFilePath); InputStream in = null; try { in = new BufferedInputStream(new FileInputStream(proFilePath)); } catch (FileNotFoundException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } try{ PROPERTIES.load(in); }catch(IOException e){ System.out.println("properties创建失败!"); e.printStackTrace(); } //System.out.println("EvnConfig.testHosts:"+PROPERTIES.getProperty("TestHosts")); } public static final String testHosts = changeCode(PROPERTIES.getProperty("TestHosts")); public static final String formalHosts = changeCode(PROPERTIES.getProperty("FormalHosts")); public static final String testConfig = changeCode(PROPERTIES.getProperty("TestConfig")); public static final String formalConfig = changeCode(PROPERTIES.getProperty("FormalConfig")); public static final String hostsPath = changeCode(PROPERTIES.getProperty("HostsPath")); public static final String configPath = changeCode(PROPERTIES.getProperty("ConfigPath")); public static String changeCode(String str){ String toStr = ""; try { //System.out.println(str + "转换…"); toStr = new String(str.getBytes("ISO-8859-1"),"GB2312"); //System.out.println(str + "转换成功!"); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block System.out.println(str + "转换失败!"); e.printStackTrace(); } return toStr; }}

❼ jar包里面的代码如何读取jar包中的配置文件

先看代码目录结构:src/weather/QueryWeather.javaweather.xml程序里面可以直接读取到.xml文件,代码如下:private static String getXmlContent()throws IOException {FileReader f = new FileReader("src/weather/weather.xml");BufferedReader fb = new BufferedReader(f);StringBuffer sb = new StringBuffer("");String s = "";while((s = fb.readLine()) != null) {sb = sb.append(s);}return sb.toString();}但是一旦把这个class文件和xml文件打成jar包再运行,对不起,报错,QueryWeather.class字节码根本找不到weather.xml在看打成jar包的结构:META-INFMANIFEST.MFweatherQueryWeather.classweather.xml用下面的方法就可以找到weather.xmlprivate static String getXmlContent()throws IOException {Reader f = new InputStreamReader(QueryWeather.class.getClass().getResourceAsStream("/weather/weather.xml"));BufferedReader fb = new BufferedReader(f);StringBuffer sb = new StringBuffer("");String s = "";

❽ dos下运行jar包找不到oracle数据库driver

那就是把连接数据库的那个jar, 比如ojbc14.jar,或者class12.zip那样的东西,没有加入到jar的配置文件里面去。可以仿照那个第三方jar放置的路径,在自己打的那个jar包里面那个配置文件,就是那指定main class的那个文件里面,把数据库这个jar给加上去 manifest.mf那个文件

❾ java 工程里有配置文件 打包成jar文件 找不到配置文件的路径 这个路径该怎么写!!

getClass.getResource("去除src之后的路径")

❿ 运行jar文件失败classpath下的资源文件找不到

ApplicationContext act = new ( "classpath:applicationContext.xml"); 这一句话, 你打包完了之后,它在load applicationContext.xml 的时候 路径变了。实在找不到对的路径, 就把那专个配置文属件拿出来,hard code 写进去(仅仅 做testing)


赞 (0)