-3

好的,所以基本上我有这两个 Minecraft 模组,它们都修改了 bfj.class 文件,所以我在这里使用在线反编译器对文件进行了反编译:http://java.decompiler.free.fr/?q=preview然后我复制了代码从一个文件中将其放在另一个文件的末尾并将其保存为 .java 文件。现在我不知道这是否可行,或者我是否需要重新编程文件(我不知道如何编程),但我想尝试将一个 java 文件重新编译成一个文件。除了我反编译和合并的两个编译文件和合并的 .java 文件之外,我没有任何其他文件...如何将 java 文件转换为缺少文件的类文件???例如,当我尝试编译时,会出现以下错误:

C:\Users\*******\Desktop\New folder>javac bfj.java
bfj.java:3917: error: class, interface, or enum expected
import cpw.mods.fml.relauncher.Side;
^
bfj.java:3918: error: class, interface, or enum expected
import cpw.mods.fml.relauncher.SideOnly;
^
bfj.java:3919: error: class, interface, or enum expected
import java.io.FileInputStream;
^
bfj.java:3920: error: class, interface, or enum expected
import java.io.FileNotFoundException;
^
bfj.java:3921: error: class, interface, or enum expected
import java.io.IOException;
^
bfj.java:3922: error: class, interface, or enum expected
import java.net.MalformedURLException;
^
bfj.java:3923: error: class, interface, or enum expected
import java.net.URL;
^
bfj.java:3924: error: class, interface, or enum expected
import java.util.Properties;
^
bfj.java:3925: error: class, interface, or enum expected
import java.util.Random;
^
bfj.java:3926: error: class, interface, or enum expected
import net.minecraft.client.Minecraft;
^
bfj.java:3927: error: class, interface, or enum expected
import net.minecraftforge.common.MinecraftForge;
^
bfj.java:3928: error: class, interface, or enum expected
import net.minecraftforge.event.EventBus;
^
bfj.java:3929: error: class, interface, or enum expected
import net.minecraftforge.event.entity.PlaySoundAtEntityEvent;

关于我需要做什么和/或如果我们可以编译它是否可行的任何想法?

4

2 回答 2

1

除了这里明显缺少库/导入(参见编译日志),你应该看看这里的主题。

在 Java 中,默认行为是文件名必须与它包含的类的名称相匹配,当您拥有两个文件时这很好,因为我猜它已正确编译(例如,您有 .class 文件)。

但是,当您将一个文件复制到另一个文件中时,您将必须进行一些进一步的更改以保持此规则有效,并且您不能像那样只附加两个文件。

于 2013-06-28T04:47:58.467 回答
0

如果您对 Java 构建系统知之甚少,那么您在执行此类操作时成功的几率非常低。

至少,我建议了解 .java 和 .class 文件之间的区别、如何调用javac以及 Java 导入是如何工作的。一旦你掌握了基础知识,如果你还有问题,你可以来这里。

另外,使用更好的反编译器。

于 2013-06-28T04:21:18.370 回答