【问题标题】:Decompile a Java project and compile反编译一个Java项目并编译
【发布时间】:2014-07-03 10:16:06
【问题描述】:

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

【问题讨论】:

  • 是第三方 jar 吗?你能分享它的名字和链接吗?还是某个内部项目?
  • @SaifAsif 我不能分享这个项目。这只是一个内部项目,没有任何版权。
  • 如果你是反编译一个jar,你也必须得到项目结构!您可以创建一个具有确切结构的 Java 项目!
  • @ItachiUchiha 那么我应该创建和从反编译工具获得的相同的包吗?我不太了解JavaFX。在 com\qwe\asdff\ddd\ 内的 decomiled 文件夹中,我有文件夹 main 。它有 .fxml 文件,每个文件都有一个控制器 .java 文件。我对此感到困惑。
  • @ITresearcher com\qwe\asdff\ddd 对应包,在任何IDE中,你都会看到com.qwe.asdff.ddd,在里面你可以创建对应的.fxml.java文件

标签: java netbeans javafx decompiling


【解决方案1】:

有很多方法可以实现这一点,但我认为您无法像那样将项目导入 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 中了

【讨论】:

    【解决方案2】:
    1. 在您的 IDE 中创建一个 JavaFX 项目。
    2. 反编译 jar 以获取 java 文件。这些文件将放置在 根据包装不同的文件夹和子文件夹。
    3. 将文件夹作为包放入上述步骤 1 中创建的项目中。
    4. 在 IDE 中清理并编译项目。

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

    【讨论】:

    • 我对 JavaFX 了解不多。在 com\qwe\asdff\ddd\ 内的 decomiled 文件夹中,我有文件夹 main 。它有 .fxml 文件,每个文件都有一个控制器 .java 文件。我对此感到困惑
    • 是的...首先您需要检查如何在 netbeans 中使用 JavaFX 打个招呼。设置好 hello world 项目后,您将自动确定 java 和 fxml 文件的放置位置
    • 好的。我会尽力回复你的。
    • 我遇到了很多错误。一些错误是重复声明变量。还有诸如“匿名类实现接口;不能有参数”之类的错误代码 private static void showFallback(boolean jreError) { SwingUtilities.invokeLater(new Runnable(jreError) { private final boolean val$jreError;
    • 这并不奇怪。没有 Java 反编译器会一直为您提供无错误的代码,甚至大部分时间。
    猜你喜欢
    • 2016-03-07
    • 1970-01-01
    • 1970-01-01
    • 2020-03-22
    • 2011-10-29
    • 2013-04-12
    • 2012-02-09
    • 2017-12-05
    • 2011-07-09
    相关资源
    最近更新 更多