就是运行一个jar 在jar 的里面创建一个 Properties 或 ini 或 xml 如果一开始就有这个文件可以修改这个文件么不知道我说的明白不 就是 jar运行了可以修改自己包里的内容不 要是能实现的话请给出一个可以运行的例子谢谢

解决方案 »

  1.   

    可以  但是你得遵守jar包规范:如:方法参数个数,本jar里的util方法等等
      

  2.   

    肯定可行,但得看你在什么环境下运行JAR包,编码估计有点儿繁琐。
      

  3.   

    可以用class.getResourceAsStream读取文件,但是无法写入文件。如果一定要修改jar中的文件,可以考虑下面的方法:
    先提取jar中的所有文件->修改文件中的内容->通过Runtime.getRuntime().exec()重新打包成jar文件
      

  4.   

    不能直接在里面创建,只能曲折救国,如果一定要这样的话,
    1. 把你的jar (A)复制一下。
    2. 修改你复制的那个 jar文件(B)。
    3. 重启后,用B替换A(不能直接运行A啊,可以通过批处理bat,或其他方式运行A.)
      

  5.   

    jar 文件应该被认为是个只读文件!
      

  6.   

    jar应该是只读的
    为什么不在同目录路径创建一个文件呢
    优先找同目录下的 没找到在去jar里找
      

  7.   

    主要是想试试能不能整成delphi那样的一个文件就搞定 然后就想到写了呵呵
      

  8.   


    //对Jar包的操作是有难度的,毕竟Jar并不是普通的文本文件它是经过压缩过的,本质上类似zip格式
    //但在Java中对Jar包的操作也不是没可能,没有升入研究过,可以提示下收集的资料/**
    在JDK API中,还定义了java.util.jar包,其中封装了用于在Java应用程序中创建、维护和操作jar文件的多种类型对象,主要对象包括:Attributes:用于将JAR文件中说明属性内容映射到该类的各个字符串变量中;
    JarEntry:用于对应JAR文件中封装的各个被压缩文件;
    JarFile:对应磁盘文件系统中的JAR压缩文档对象;
    JarInputStream:从JAR文件中读取压缩内容的流对象;
    JarOutputStream:创建JAR文件的流对象;
    Manifest:对应JAR文件中说明内容的对象。在实际的应用程序设计过程中,与创建和管理JAR压缩文档相关的对象为JarInputStream和JarOutputStream。在下面的内容中,将演示在Java应用程序中创建JAR类型压缩文档的方法。 
    *///下面的代码为创建JAR类型压缩文档的Java应用程序代码:
    //JARDemo.java
    import java.io.*;
    import java.util.jar.*;public class JARDemo {
    public static void main(String[] args) {
    if (args.length != 2) {
    System.out.println("请输入被压缩文件的名称和压缩文件的名称!");
    System.exit(1);
    }
    try {
    // 创建文件输入流对象
    FileInputStream in = new FileInputStream(args[0]);
    // 创建文件输出流对象
    FileOutputStream out = new FileOutputStream(args[1]);
    // 创建JAR数据输出流对象
    JarOutputStream jarOut = new JarOutputStream(out);
    // 创建指向压缩原始文件的入口
    JarEntry entry = new JarEntry(args[0]);
    jarOut.putNextEntry(entry);
    // 向压缩文件中输出数据
    int nNumber;
    byte[] buffer = new byte[512];
    while ((nNumber = in.read(buffer)) != -1)
    jarOut.write(buffer, 0, nNumber);
    // 关闭创建的流对象
    jarOut.close();
    out.close();
    in.close();
    } catch (IOException e) {
    System.out.println(e);
    }
    }
    }在该程序的实现代码中,首先创建用于进行文件输入和输出的FileInputStream和FileOutputStream对象,并以 FileOutputStream对象实例为参数创建JarOutputStream对象实例,从而为创建JAR格式压缩文件建立数据流基础。在随后的代码中,以被压缩文件的文件名为参数,创建在JAR压缩文件中指向压缩原始文件的Entry对象实例,并利用putNextEntry方法将该 Entry存储进入压缩文件中。最后,利用JAROutputStream对象中定义的write方法向输出流中写出从压缩原始文件中读取的数据,从而创建JAR格式的压缩文件。//下面的程序代码用于将JAR类型文档解压缩后,恢复成为独立的数据文件
    //UnjarDemo.java
    import java.io.*;
    import java.util.jar.*;public class UnjarDemo {
    public static void main(String[] args) {
    if (args.length != 2) {
    System.out.println("Usage:java UnjarDemo ");
    System.exit(1);
    }
    try {
    // 创建文件输入流对象实例
    FileInputStream in = new FileInputStream(args[0]);
    // 创建Zip压缩格式输入流对象实例
    JarInputStream jarin = new JarInputStream(in);
    // 创建文件输出流对象实例
    FileOutputStream out = new FileOutputStream(args[1]);
    byte[] buffer = new byte[1024];
    int nNumber;
    while ((nNumber = jarin.read(buffer, 0, buffer.length)) != -1)
    out.write(buffer, 0, nNumber);
    // 关闭文件流对象
    jarin.close();
    out.close();
    in.close();
    } catch (IOException e) {
    System.out.println(e);
    }
    }
    }//更加具体的内容你可参考java.util.jar 和 java.util.zip包中的API文档和源码