package com;
import java.util.*;
import java.lang.Runtime.*;
import java.io.*;
public class UnRarTest {
public static void main(String[] args) throws Exception
{
Scanner in=new Scanner(System.in);
System.out.println("输入你要解压的文件(包括路径,后缀)");
String filename=in.nextLine();
showList(filename);
System.out.println("从中选择你要打开的文件");
String nfilename=in.nextLine();
unRar(nfilename);
}
/*D:\\Program Files\\WinRAR\\为我的WinRAR目录
* 根据自己的情况改下
* 得到RAR文件目录
*/
public static void showList(String compress)throws Exception
{
Runtime rt =Runtime.getRuntime();
Process p = rt.exec("D:\\Program Files\\WinRAR\\UnRAR.EXE l " + compress );
InputStream fis = p.getInputStream();//获得子进程的输入流
BufferedReader in=new BufferedReader(new InputStreamReader(fis));
String line;
while((line=in.readLine())!=null)
{
System.out.println(line);
}
in.close();
fis.close();
}
/*
* 显示你要打开的文件内容
*/
public static void unRar(String ncompress)throws Exception
{
Runtime rt =Runtime.getRuntime();
Process p = rt.exec("D:\\Program Files\\WinRAR\\UnRAR.EXE e -o+ -p- " + ncompress );//将指定的压缩文件解压到D:\Program Files\WinRAR\目录下
BufferedReader in=new BufferedReader(new FileReader("D:\\Program Files\\WinRAR\\"+ncompress));
String line;
while((line=in.readLine())!=null)
{
System.out.println(line);
}
in.close();
}
}
都在控制台实现此功能