我正在用 notepad++ 打开一个 minecraft 类文件夹。但是每当我打开它时,它只有一堆框,上面写着 Nul、DC1、SO、SOH、FF、STX 等……在指南上,我看到类文件打开得很好,我做错了什么?
问问题
40408 次
3 回答
2
如果仍然编译,则无法查看文件的源代码,您必须将类文件反编译为 java 文件,然后您可以使用记事本/eclipse 读取文件,人们制作了一个程序来反编译 minecraft 源代码所以你可以编辑它,它叫做 mcp
http://mcp.ocean-labs.de/index.php/MCP_Releases
只需下载并按照您的意图继续,然后您可以自由编辑代码
于 2012-08-09T00:02:13.203 回答
2
您正在尝试编辑已编译的Java 类。
它不是文本文件,因此您无法使用文本编辑器对其进行编辑。你想要一个.java
文件,我不相信 Minecraft 是开源的。
再次检查您的指南,您可能已经偏离了他们打算引导您的路径。
于 2012-02-05T07:37:05.020 回答
0
如果要按原样打开类文件,请使用任何二进制编辑器。ghex 是一个不错的选择。你可以做:
ghex MyClass.class
javap 是一个内置的反汇编 java 类文件的工具。这是一个例子:
javap -v MyClass.class
这将为您提供有关您的类、它的字节码甚至是它正在做什么的解释的大量信息
另一个用于反编译 java 类文件的好工具是 CFR:http ://www.benf.org/other/cfr/ 示例:
java -jar cfr.jar MyClass.class
资源:
import java.math.BigInteger;
import java.util.stream.Stream;
public class MyClass {
public static void main(String[] args) {
System.out.println(
Stream.iterate(
new BigInteger[]{BigInteger.ZERO, BigInteger.ONE},
n -> new BigInteger[]{n[1], n[0].add(n[1])}
)
.limit(1001)
.skip(1000)
.findFirst()
.get()[1]
);
}
}
病死率输出:
import java.io.PrintStream;
import java.math.BigInteger;
import java.util.Optional;
import java.util.stream.Stream;
public class MyClass {
public static void main(String[] arrstring) {
System.out.println(Stream.iterate(new BigInteger[]{BigInteger.ZERO, BigInteger.ONE}, arrbigInteger -> new BigInteger[]{arrbigInteger[1], arrbigInteger[0].add(arrbigInteger[1])}).limit(1001L).skip(1000L).findFirst().get()[1]);
}
}
于 2018-07-29T00:07:54.457 回答