我正在尝试从.jar文件中提取文件。如何使用命令行执行此操作?
我正在运行Windows 7
答案 0 :(得分:117)
来自the docs:
要从jar文件中提取文件,请使用
x
,如下所示:C:\Java> jar xf myFile.jar
要仅从jar文件中提取某些文件,请提供其文件名:
C:\Java> jar xf myFile.jar foo bar
jar
可能不属于C:\Java
的文件夹,在我的Windows分区上:
C:\Program Files (x86)\Java\jdk[some_version_here]\bin
除非jar
的位置在您的路径环境变量中,否则您必须指定完整路径/从文件夹内运行程序。
编辑:这是另一篇文章,特别关注提取JAR:http://docs.oracle.com/javase/tutorial/deployment/jar/unpack.html
答案 1 :(得分:27)
请注意,jar文件是一个Zip文件,任何Zip工具(例如7-Zip)都可以查看jar内部。
答案 2 :(得分:18)
在Ubuntu中:
unzip file.jar -d dir_name_where_extracting
答案 3 :(得分:8)
您可以使用以下命令:jar xf rt.jar
其中X
代表提取,f
是任何选项,表明在命令行中指定要从中提取文件的JAR文件,而不是通过stdin。
答案 4 :(得分:2)
Java有一个专门用于zip文件的类,还有一个专门用于Jar文件的类。
java.util.jar.JarOutputStream
java.util.jar.JarInputStream
使用控制台上的命令,使用扫描仪设置为system.in
Scanner console = new Scanner(System.in);
String input = console.nextLine();
然后获取所有组件并将它们写为文件。
JarEntry JE = null;
while((JE = getNextJarEntry()) != null)
{
//do stuff with JE
}
您也可以使用java.util.zip.ZipInputStream,因为看到JAR文件的格式与ZIP文件相同,ZipInputStream将能够处理Jar文件,实际上JarInputStream实际上扩展了ZipInputStream。
替代getNextJarEntry而不是使用getNextEntry
答案 5 :(得分:2)
jar xf myFile.jar
将myFile更改为您的文件名称
这将保存.jar文件的当前文件夹中的内容
应该这样做:))
答案 6 :(得分:0)
给出一个名为Me.Jar的文件:
使用Java jar
命令 - 我使用的是jdk1.8.0_31,所以我要输入
C:\ Program Files(x86)\ Java \ jdk1.8.0_31 \ bin \ jar xf me.jar
那应该将文件解压缩到文件夹bin。在我的情况下查找文件.class我的Me.jar包含一个Valentine.class
键入java Valentine
并按Enter键,将打开您的消息文件。
答案 7 :(得分:-3)
要将jar解压缩到指定文件夹,请使用此命令通过命令提示符
C:\Java> jar xf myFile.jar -C "C:\tempfolder"