例如: 有一个jar包: Test.jar, 里面有MANIFEST文件,有一个主类App.class, 有一个文件data.txt。那么我想通过App运行之后,能写data.txt,要怎么做? 

解决方案 »

  1.   

    http://blog.csdn.net/keyboardsun/archive/2008/02/15/2097336.aspx
    可以参考这篇blog。
    在运行过程中,解压test.jar 然后 修改data.txt,然后再打包回去。
      

  2.   

    楼上的好像要指定jar包的名字,那我要怎么获得当前运行的jar包的文件名呢?
      

  3.   

    压缩文件的处理,一般都是解压再压缩的过程,不能往压缩文件中直接写入东西。
    如果你的java程序是运行在压缩包上的,那么这个包就只能解压,因为正在运行的程序是不可以被覆盖的。
    所以你还是打消这种念头比较好。
      

  4.   

    jar包里的照样能写,不需要自己解压缩,既然虚拟机能解压缩class文件,其它文件也能,这样:ClassLoader loader = App.class.getClassLoader();
    InputStream is = loader.getResourceAsStream(“data.txt”);