【发布时间】:2012-07-15 04:04:00
【问题描述】:
我对 java 编译器的理解遇到了一些问题。
如果您了解 Minecraft,您可能知道游戏中有许多 mod,它们是注入原始 .jar 中的修改类片段,替换旧(原始).class,问题是如果您想使用 2 个不同的 mod 替换相同的 .class,这有点不可能,除非你将它们的代码混合并做一些版本。
好吧,我得到了 2 个使用相同 .class 的模块,并反编译了两个类(反编译成功),分析、修改并创建了一个同时适用于两个模块的 .java 文件。我现在的问题是我必须将这个 .java 重新编译成一个 .class 文件,这样我才能注入到 minecraft .jar 中,但是每次我尝试编译它时,都会出现很多错误,例如class, interface, or enum expected 和 @ 987654322@ 这些错误是意料之中的,因为代码中提到了很多外部类,实际上并没有包含 main 类型。
我想知道你们中是否有人知道将 .java 转换为 .class 二进制文件,而忽略我之前提到的所有错误,或者如果您有任何其他关于如何操作的建议我可以吗?
PS:这段代码不是一个完整的程序,这就是为什么我得到这些错误,在.jar中它会很好地工作,请不要回答单独编译这个文件是没有意义的。
【问题讨论】:
-
所以只需将原始jar文件(和所需的jar文件)添加到class-path进行编译,然后使用winrar之类的东西替换jar文件中创建的类。
-
感谢您的快速回复,但是如何使用 javac 将 jar 添加到类路径中?
-
@Kasama
javac -classpath jarfile1.jar:jarfile2.jar:jarfile3.jar:. ClassToCompile.java。 (注意:如果这是在 Windows 上,请使用;而不是:。) -
我只是尽我所能使用类路径中的原始 jar 来编译它,但仍然出现相同数量和类型的错误,我做了
javac -cp minecraft.jar bg.java。我的世界使用的类混淆是否与它有关? -
还尝试包含 minecraft.jar
javac -cp minecraft.jar:jinput.jar:lwjgl.jar:lwjgl_util.jar bg.java的所有依赖项(注意:我使用的是 Ubuntu,所以它是 ':')仍然出现错误
标签: java class module compilation minecraft