反编译Java项目并编译

问题描述 投票:0回答:3

我正在尝试反编译一个java项目(.jar)文件,我可以从中获取.java文件。现在我怎样才能把它编译回来呢?我可以将 .java 文件作为单个文件添加到 Netbeans 中。但是如何将其添加为项目添加编译呢?该项目是一个JavaFX项目。所以请帮我解决这个问题。

java netbeans javafx decompiling
3个回答
2
投票

有很多方法可以实现这一点,但我认为您无法像这样直接将项目导入到 jar 中(在本例中为 out-of-the-jar )。

我们可以使用最基本的技术(我承认有点脏),但它有效。

  1. 将 jar 的内容提取到目录中并像以前一样反编译它
  2. 接下来,在netbeans中创建一个空项目(没有src目录或任何东西)
  3. 将反编译项目的内容复制到此 netbeans 文件夹中。您现在应该看到一些文件的骨架结构。 注意 该项目是 inisde netbeans,但它还不是一个 java 项目。
  4. 编辑netbeans项目的类路径并添加java库,使其成为Java netbeans项目。

我有时使用的另一种技术是手动制作 IDE(在我的例子中为 Eclipse)所需的所有项目文件,然后告诉 eclipse 导入项目。当 eclipse 找到所有必需的文件( .project、.classpath 和 all )时,它会很好地导入到 IDE 中


1
投票
  1. 在 IDE 中创建 JavaFX 项目。
  2. 反编译jar得到java文件。这些文件将位于 根据包装不同的文件夹和子文件夹。
  3. 将文件夹作为包放入上面步骤 1 中创建的项目中。
  4. 在 IDE 中清理并编译项目。

P.S:如果您计划在项目中使用反编译和重新编译的类,请确保遵守许可协议。


0
投票

绝对不能保证反编译的代码能够重新编译。 这个项目https://github.com/java-decompiler/jd-core在几组开源项目上进行了重新编译作为其测试套件的一部分,并且这个分叉https://github.com/nbauma109 /jd-core 继续朝这个方向发展,但每个新项目和版本都需要额外的工作才能正确重新编译。

© www.soinside.com 2019 - 2024. All rights reserved.