static Properties readJarproperty() throws IOException {
currentJarPath = URLDecoder.decode(com.taisys.ota.util.RunMain.class
.getProtectionDomain().getCodeSource().getLocation().getFile(),"UTF-8"); // 获取当前Jar文件名,并对其解码,防止出现中文乱码
System.out.println("currentJarPath=" + currentJarPath);
JarFile currentJar = new JarFile(currentJarPath);
JarEntry dbEntry = currentJar
.getJarEntry("com/taisys/ota/util/jdbc.properties");
InputStream in = currentJar.getInputStream(dbEntry);
Properties p = new Properties();
p.load(in);
in.close();
return p;
}
static void updateJarproperty() throws IOException {
currentJarPath = URLDecoder.decode(com.taisys.ota.util.RunMain.class
.getProtectionDomain().getCodeSource().getLocation().getFile(),"UTF-8"); // 获取当前Jar文件名,并对其解码,防止出现中文乱码
String EntryName = "jdbc.properties";
currentPath = startServer();
byte[] data = null;
File properFile = new File(currentPath + "/jdbc.properties");
if (properFile.exists()) {
InputStream in = new FileInputStream(properFile);
data = getByte(in);
}
try {
JarFile jf = new JarFile(currentJarPath);
TreeMap<String,byte[]> tm = new TreeMap<String,byte[]>();
Enumeration es = jf.entries();
while (es.hasMoreElements()) {
JarEntry je = (JarEntry) es.nextElement();
byte[] b = getByte(jf.getInputStream(je));
tm.put(je.getName(),b);
}
JarOutputStream out = new JarOutputStream(new FileOutputStream(
currentJarPath));
Set set = tm.entrySet();
Iterator it = set.iterator();
boolean has = false;
while (it.hasNext()) {
Map.Entry me = (Map.Entry) it.next();
String name = (String) me.getKey();
JarEntry jeNew = new JarEntry(name);
// System.out.println("jeNew.getName()="+jeNew.getName());
out.putNextEntry(jeNew);
byte[] b;
if (name.equals(EntryName)) {
b = data;
has = true;
} else
b = (byte[]) me.getValue();
out.write(b,b.length);
}
if (!has) {
JarEntry jeNew = new JarEntry(EntryName);
out.putNextEntry(jeNew);
out.write(data,data.length);
}
out.flush();
out.finish();
out.close();
} catch (Exception e) {
e.printstacktrace();
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。