java可以读取jar里 Properties 可以写入到jar里么 就是运行一个jar 在jar 的里面创建一个 Properties 或 ini 或 xml 如果一开始就有这个文件可以修改这个文件么不知道我说的明白不 就是 jar运行了可以修改自己包里的内容不 要是能实现的话请给出一个可以运行的例子谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以 但是你得遵守jar包规范:如:方法参数个数,本jar里的util方法等等 肯定可行,但得看你在什么环境下运行JAR包,编码估计有点儿繁琐。 可以用class.getResourceAsStream读取文件,但是无法写入文件。如果一定要修改jar中的文件,可以考虑下面的方法:先提取jar中的所有文件->修改文件中的内容->通过Runtime.getRuntime().exec()重新打包成jar文件 不能直接在里面创建,只能曲折救国,如果一定要这样的话,1. 把你的jar (A)复制一下。2. 修改你复制的那个 jar文件(B)。3. 重启后,用B替换A(不能直接运行A啊,可以通过批处理bat,或其他方式运行A.) jar 文件应该被认为是个只读文件! jar应该是只读的为什么不在同目录路径创建一个文件呢优先找同目录下的 没找到在去jar里找 主要是想试试能不能整成delphi那样的一个文件就搞定 然后就想到写了呵呵 //对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.javaimport 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.javaimport 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文档和源码 命令行下怎么不能运行java程序 请教一个java中的同步问题 大家帮一下忙啊! 关于java树形图子节点删除的问题 为什么Properties写入文件中文字符都成了乱码? 如何把从数据库中读取到的数据放到JTable中显示啊 新手,请教大家!谢谢 请问什么同样效果的flash和applet的执行速度却不一样? 如果你想玩五子棋游戏,你希望它是什么样子的??(高分哦!!) 大侠赐教了,怎么用JAVA连接DLL文件??谢谢 求一个适合做黑盒测试的简单例子 java編程:檢測子串
先提取jar中的所有文件->修改文件中的内容->通过Runtime.getRuntime().exec()重新打包成jar文件
1. 把你的jar (A)复制一下。
2. 修改你复制的那个 jar文件(B)。
3. 重启后,用B替换A(不能直接运行A啊,可以通过批处理bat,或其他方式运行A.)
为什么不在同目录路径创建一个文件呢
优先找同目录下的 没找到在去jar里找
//对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文档和源码