【问题标题】:Extract .jar file with NodeJS使用 NodeJS 提取 .jar 文件
【发布时间】:2022-01-31 12:16:26
【问题描述】:

我需要使用 NodeJS 提取一个 JAR 文件,但我不知道怎么做,我也不确定 StackOverFlow 是否适合这个地方,如果不是,很抱歉。

【问题讨论】:

  • 是的,我已经查过了,我已经找了好几个小时了。我什么都找不到。

标签: javascript java node.js jar extract


【解决方案1】:

所以 jar 文件只是 java 存档文件,可以使用任何常用的操作系统工具(如 unzipjar)解压缩,因此像 jar xvf /path/to/file.jarunzip /path/to/file.jar 这样的简单命令应该可以提取任何 .jar 文件。但是既然你想用nodeJS来做,你可以利用node js代码模块中的exec函数child_process

你可以创建一个简单的函数来接收jar文件的路径

const exec = require('child_process').exec;

extractJar(path) => {
  const command = `jar xvf ${path}`;
  exec(command, (err, stdout) => {
    if(err) console.log(err); return;
    console.log('success!');
  })
}

或者,您可以尝试使用 unzipper 之类的库,这些库不依赖于您的操作系统工具,因为 exec 命令只是在您的 shell 上执行该进程,但这些库使用您的节点 js IO 操作进行提取。

【讨论】:

  • 谢谢!我实际上已经尝试过解压缩,但没有运气,它给了我以下错误:Unhandled rejection Error: invalid signature: 0xa20200a。如果您知道如何解决这个问题,那就太好了,但如果不知道,那么您知道我可以使用您的解决方案在 Windows 上解压缩文件的方法吗?
  • 是的,它应该可以工作,首先尝试这个命令jar xvf /path/to/.jar如果这工作上面的sn-p应该
  • 有效!谢谢。如何为提取的文件指定目标目录?
  • 另外,其中一些错误:Error: Command failed: jar xvf "C:\Users\redacted\OneDrive\Desktop\MC Plugin Finder\plugins-without-dependencies\goPaint.jar" java.util.zip.ZipException: zip END header not found
  • 啊,做了一些测试后,我认为那些不工作的已经用 gradle 编译了,我应该如何去反编译这些?
猜你喜欢
  • 2012-01-17
  • 1970-01-01
  • 1970-01-01
  • 2014-11-16
  • 2012-02-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多