将java程序打包成jar包,双击运行,运行的当前目录是jar包所在的目录?那我要访问jar包里面的文件怎么办? 比如用输入输出流访问jar包里面的文件进行读写,这样可行吗?

解决方案 »

  1.   

    在Manifest里设置Class-Path属性,可用ClassLoader.getResourceAsStream读取,具体的可查api
      

  2.   

    类名称.class.getResourceAsStream就可以了。
      

  3.   

    改下这个文件
    Manifest-Version: 1.0
    ProjectName: test
    Date: 2009-06-26 14:13:26
    Main-Class: Test
    Class-Path: ./  
      

  4.   


    了解完怎么回事后 可以用fat jar
      

  5.   

    楼上各位说的只有InputStream,能不能获得OutputStream,往jar文件里面写。
      

  6.   


    这样还是不行,classpath本来就有当前目录。