我在src底下有一个xml配置文件,一个类文件去读取(修改)该配置文件,当没打包时程序没错,打包以后(配置文件和那个类文件在同一个包中),发生了错误:
FileNotFoundException提示该配置文件找不到
我是用这样的方法读取该配置文件:
new FileReader("dbSelect.xml")

解决方案 »

  1.   

    已经被打包到Jar里了,当然不能像你那么做了
    读取还好说,如下:
    String currentJarPath = URLDecoder.decode(YourClassName.class.getProtectionDomain().getCodeSource().getLocation().getFile(), "UTF-8"); //获取当前Jar文件名
    java.util.jar.JarFile currentJar = new java.util.jar.JarFile(currentJarPath);
    java.util.jar.JarEntry dbEntry = currentJar.getJarEntry("包名/dbSelect.xml");
    InputStream in = currentJar.getInputStream(dbEntry);
    //以上YourClassName是class全名,也就是包括包名修改就不好做了
      

  2.   

    难道打成包的不能修改里面的内容?都没找到相关的api
      

  3.   

    可以的
    java.util.jar.*
    专门处理jar包的
      

  4.   

    放src根目录下去,InputStream in = ClassLoader.getSystemResourceAsStream("dbSelect.xml");
    或者把xml拎出来放jar外面
      

  5.   

    现在读取是可以的
    就是不知道怎么在jar包里面修改配置文件
      

  6.   

    JarOutputStream out = new FileOutputStream(currentJarPath);
    out.putNextEntry(dbEntry);
    out.write(byte[] b, int off, int len);

    out.close();