# 有两种错误信息都是路径中的空格造成
# 第一种 只有一个空格
warn: missing 'transact-intent-1.0.jar', ignored
error: no sources given
# 第二种 多种空格会出现如下情况
ERROR: Cannot create archive D:\Program Files\JetBrains\IntelliJ IDEA 2020.2.4\plugins\java-decompiler\lib\test\transact-intent-1.0.jar
java.io.IOException: 拒绝访问。
at java.io.WinNTFileSystem.createFileExclusively(Native Method)
at java.io.File.createNewFile(File.java:1012)
at org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler.createArchive(ConsoleDecompiler.java:187)
at org.jetbrains.java.decompiler.struct.ContextUnit.save(ContextUnit.java:114)
at org.jetbrains.java.decompiler.struct.StructContext.saveContext(StructContext.java:58)
at org.jetbrains.java.decompiler.main.Fernflower.decompileContext(Fernflower.java:87)
at org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler.decompileContext(ConsoleDecompiler.java:120)
at org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler.main(ConsoleDecompiler.java:82)
Exception in thread "main" java.lang.NullPointerException
at org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler.saveClassEntry(ConsoleDecompiler.java:239)
at org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler.saveDirEntry(ConsoleDecompiler.java:202)
at org.jetbrains.java.decompiler.struct.ContextUnit.save(ContextUnit.java:118)
at org.jetbrains.java.decompiler.struct.StructContext.saveContext(StructContext.java:58)
at org.jetbrains.java.decompiler.main.Fernflower.decompileContext(Fernflower.java:87)
at org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler.decompileContext(ConsoleDecompiler.java:120)
at org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler.main(ConsoleDecompiler.java:82)
1、反编译失败元原因
使用idea的反编译插件java-decompiler.jar时候发现反编译一直失败,经过测试是路径空格导致的,很多工具都有这个问题 引以为戒
注意在java-decompiler.jar绝对路径中不能含有空格
2、反编译插件下载
插件下载完成在你的idea的插件安装目录plugins下会有java-decompiler目录,这个目录中的就是你的反编译工具jar包
3、反编译命令
# 对test-01.jar进行反编译
# 找到idea的lib目录下的java-decompiler.jar,复制一份到一个没有空格的目录decomoiler下
# 在decompiler目录下创建一个savepath目录
# 把需要反编译的test.jar包放到decomoiler目录下
# cmd进入decomoiler目录执行以下命令
java -cp "java-decompiler.jar绝对路径" org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler -dgs=true test.jar savepath