繁体   English   中英

用命令行提取.jar文件

[英]Extracting .jar file with command line

我正在尝试从 a.jar 文件中提取文件。 我如何使用命令行来做到这一点?

我正在运行 Windows 7

文档

要从 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

请注意,jar 文件是一个 Zip 文件,任何 Zip 工具(例如 7-Zip)都可以查看 jar 的内部。

在 Ubuntu 中:

unzip file.jar -d dir_name_where_extracting

可以使用以下命令: jar xf rt.jar

其中X代表提取, f将是任何选项,指示要从中提取文件的 JAR 文件是在命令行上指定的,而不是通过 stdin 指定的。

jar xf myFile.jar
将 myFile 更改为您的文件名
这会将内容保存在 .jar 文件的当前文件夹中
应该这样做:)

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。

另一种方法是使用 getNextEntry 代替 getNextJarEntry

给定一个名为 Me.Jar 的文件:

  1. 进入 cmd
  2. 按回车键
  3. 使用 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,您的消息文件将被打开。

我遇到了同样的问题,并且 jar 命令不起作用。 我复制了 jar 文件并将扩展名更改为.zip。 然后右键单击 .zip 文件和 select 'Extract All'。 这提取了所有文件。

要将 jar 解压缩到指定文件夹中,请通过命令提示符使用此命令

C:\Java> jar xf myFile.jar -C "C:\tempfolder"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM