zip.exe存放在c:\TC\bin\zip.exe ,我现在想在java中通过调用zip命令将c:\temp\中的1.txt 2.txt 打包生成名为test.zip在dos里我会这个操作我会:zip -1 test.zip 1.txt 2.txt可是在java 中我就不会了,我的java代码如下:……
Runtime rt = Runtime.getRuntime(); //获取系统当前运行时对象
Process p = null; //创建一个进程 try{ //p=rt.exec("\"D:/AnyQ/AnyQ.exe\"");
p = rt.exec( 这里我该怎么写呢 ); }catch(Exception e){ System.out.println("Error exec AnyQ"); }
……
Runtime rt = Runtime.getRuntime(); //获取系统当前运行时对象
Process p = null; //创建一个进程 try{ //p=rt.exec("\"D:/AnyQ/AnyQ.exe\"");
p = rt.exec( 这里我该怎么写呢 ); }catch(Exception e){ System.out.println("Error exec AnyQ"); }
……
解决方案 »
- 新手请教,关于JDK 自带的 log 。。
- 高分求解 Spring http invoke + hibernate 实现CS结构
- Java EE架构原理与企业级应用
- 关于BufferedReader类在客户端与服务器端通信的问题
- java swing 的一个问题?
- udp通讯(聊天),结果无法显示...小问题,大家看看
- java如何实现类似c++的模板功能呢?
- getClass().getResourceAsStream(filename);能装载本地机器任何位置的文件么?
- 不用jar可以实现把class文件放在服务器端吗?(我指的是applet程序)
- 请你推荐一本给初学者的java经典好书!!!
- 如何实例化JAVA.SQL.BLOB类
- 想用Java+Oracle9做一个基于C/S结构的简单图书管理系统,请各位前辈提供一点思路
zip -1 test.zip 1.txt 2.txt
import java.util.zip.*;public class SimpleJavaZip { public static void main(String[] args) {
try {
String Filename = args[0] + ".zip";
FileOutputStream f = new FileOutputStream(Filename);
ZipOutputStream out = new ZipOutputStream(new DataOutputStream(f));
for (int i = 1; i < args.length; ++i) {
System.out.println("Zipping file " + args[i]);
DataInputStream in = new DataInputStream(new FileInputStream(
args[i]));
out.putNextEntry(new ZipEntry(args[i]));
int c;
while ((c = in.read()) != -1) {
out.write(c);
}
in.close();
}
out.close();
} catch (Exception e) {
e.printStackTrace();
} }
/*
* 这个程序从控制台的第一个参数接收 将要生成的压缩文件名字, 如test.zip等, 而从第二个参数开始, 用于接收要压缩的文件,
* 在程序中,用了一个for循环来接收第二个参数开始所表示的文件. 执行如下 命令,可以得到一个名为 "test.zip" 的压缩文件. java
* SimpleJavaZip test a.htm b.txt c.doc e.bmp f.gif
* 这个程序只能对文件进行压缩,但是我们在实际应用中, 更加需要的是对目录进行压缩. 因此,需要对上面的 程序进行修改, 让它可以处理目录.
*
*/
}
try
{
runtime.exec("WinRAR x D:\\data.zip *.txt D:\\");
}
catch (IOException e)
{
e.printStackTrace();
}
以上代码测试成功,D:\\data.zip 为要解压的文件的路径及文件名, *.txt是指把zip中所有的txt加压出来,D:\\是指解压到D盘根目录下。前提是在Windows环境变量中,将WinRAR的路径加入到Path变量里
zip.exe我试了一下在哪个目录里都好用,因此就不用设置环境变量了。上面的代码我觉也应该好用啊,可是执行完毕后没有任何反应也不报错,谁知道上面的代码哪里有问题?
Runtime.getRuntime().exec("zip -1 路径:\\test.zip 路径:\\1.txt 路径:\\2.txt"); 关于写成批处理然后再调用的方法:
java现在不能直接调用批处理程序,需要将批处理转成exe然后再调用,相对来说稍麻烦一下。
顺便说一下,Quick Batch File (De)Compiler可以将批处理转成.exe多谢各位朋友的帮忙,贴子我已经加分了,由于个人分不多,就加到50吧。