如何将单个java文件编译为类文件? (我不是程序员)

时间:2013-06-28 04:15:29

标签: java class compilation minecraft

好吧基本上我有两个Minecraft mods都修改了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;

关于我需要做什么的想法和/或如果我们能够编译它会是否有效?

2 个答案:

答案 0 :(得分:1)

除了这里显然缺少库/导入这一事实(参见编译日志)之外,您应该查看主题here

在Java中,默认行为是文件名必须与它包含的类的名称相匹配,当你有两个文件时我没想到它正确编译(例如,你有.class文件)。

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

答案 1 :(得分:0)

如果你对Java构建系统了解不多,那么你做这样的事情的成功几率非常低。

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

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