试图用MCP反编译Minecraft 1.12时出现巨大错误



我一直在尝试使用MCP将Minecraft源代码反编译到eclipse工作区。我正在使用mcp940对Minecraft 1.12进行反编译。当我运行BATCH文件decompile.bat时,它会给我一大堆错误。我正在关注这个问题底部链接的视频教程,主持人完全跳过了这一步。eclipse工作区仍然加载并拥有所有的代码,但表示代码中充满了错误。当我尝试运行带有main方法的类Start时,会收到以下错误消息:

Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

视频教程链接到另一个关于修复realms jar版本的视频教程(也在下面链接)。我解决了这个问题,但这个问题似乎只是众多问题中的一个。修复此部分后,我尝试运行它,但仍然收到相同的错误消息。

这是控制台的输出:

== MCP 9.40 (data: 9.40, client: 1.12, server: 1.12) ==
> Searching for javac.exe in C:Program Files
"scalac" is not found on the PATH.  Scala files will not be recompiled
# found ff, ff patches, srgs, name csvs, doc csvs, param csvs, astyle, astyle config, rg, ss
Looking in C:UsersCalvinAppDataRoaming.minecraftversions for mc installs... OK
Copying assets... OK
Parsing JSON file... OK
Looking for minecraft main jar... Not found
Copying minecraft main jar... OK
> Checking libraries...
Copying library jinput... OK
Copying library icu4j-core-mojang... OK
Copying library httpcore... OK
Copying library log4j-api... OK
Copying library commons-lang3... OK
Copying library jna... OK
Copying library lwjgl-platform-natives-windows... OK
Copying library libraryjavasound... OK
Copying library jopt-simple... OK
Copying library text2speech... OK
Copying library guava... OK
Copying library oshi-core... OK
Copying library httpclient... OK
Copying library commons-compress... OK
Copying library text2speech-natives-windows... OK
Copying library fastutil... OK
Copying library platform... OK
Copying library codecjorbis... OK
Copying library soundsystem... OK
Copying library librarylwjglopenal... OK
Copying library lwjgl_util... OK
Copying library commons-codec... OK
Copying library jutils... OK
Copying library patchy... OK
Copying library commons-logging... OK
Copying library lwjgl... OK
Copying library commons-io... OK
Copying library realms... OK
Copying library authlib... OK
Copying library gson... OK
Copying library jinput-platform-natives-windows... OK
Copying library codecwav... OK
Copying library log4j-core... OK
Copying library netty-all... OK
> Checking Natives...
Extracting native lwjgl.dll... OK
Extracting native OpenAL32.dll... OK
Extracting native jinput-dx8_64.dll... OK
Extracting native SAPIWrapper_x86.dll... OK
Extracting native jinput-wintab.dll... OK
Extracting native jinput-dx8.dll... OK
Extracting native jinput-raw.dll... OK
Extracting native OpenAL64.dll... OK
Extracting native SAPIWrapper_x64.dll... OK
Extracting native jinput-raw_64.dll... OK
Extracting native lwjgl64.dll... OK
> Copying jsr305-3.0.1.jar to Libraries
> Copying jsr305-3.0.1-sources.jar to Libraries
== Decompiling client using fernflower ==
> Creating SRGs
> Applying SpecialSource
> Applying MCInjector
> Creating renamed srg
> Filtering classes
> Decompiling
> Unpacking jar
> Copying sources
> Generating package-info files
> Applying fernflower fixes
> Applying patches
'runtimebinapplydiff.exe -p1 -u -i ....temptemp.patch -d srcminecraft' failed : 1
== ERRORS FOUND ==
1 out of 1 hunk FAILED -- saving rejects to file 'netminecraftadvancementsPlayerAdvance#'
==================
'runtimebinapplydiff.exe -p1 -u -i ....temptemp.patch -d srcminecraft' failed : 1
== ERRORS FOUND ==
1 out of 2 hunks FAILED -- saving rejects to file 'netminecraftclientrendererentityRenderManager#'
==================
'runtimebinapplydiff.exe -p1 -u -i ....temptemp.patch -d srcminecraft' failed : 1
== ERRORS FOUND ==
1 out of 2 hunks FAILED -- saving rejects to file 'netminecraftutilmathCartesian.jav#'
==================
'runtimebinapplydiff.exe -p1 -u -i ....temptemp.patch -d srcminecraft' failed : 1
== ERRORS FOUND ==
1 out of 1 hunk FAILED -- saving rejects to file 'netminecraftclientutilSearchTree.ja#'
==================
'runtimebinapplydiff.exe -p1 -u -i ....temptemp.patch -d srcminecraft' failed : 1
== ERRORS FOUND ==
1 out of 1 hunk FAILED -- saving rejects to file 'netminecraftclientrendererblockstatemapStateMap.java#'
==================
'runtimebinapplydiff.exe -p1 -u -i ....temptemp.patch -d srcminecraft' failed : 1
== ERRORS FOUND ==
1 out of 1 hunk FAILED -- saving rejects to file 'netminecraftclientguiGuiSnooper.ja#'
==================
'runtimebinapplydiff.exe -p1 -u -i ....temptemp.patch -d srcminecraft' failed : 1
== ERRORS FOUND ==
2 out of 2 hunks ignored -- saving rejects to file 'netminecraftblockstatepatternBlockStateMat#'
==================
> Cleaning comments
- Done in 2605.28 seconds
== Reformating client ==
> Cleaning sources
> Replacing OpenGL constants
> Reformating sources
- Done in 118.96 seconds
== Updating client ==
> Adding javadoc
> Renaming sources
- Done in 126.23 seconds
!! Missing server jar file. Aborting !!
== Recompiling client ==
> Cleaning bin
> Recompiling
'"C:Program FilesJavajdk-10.0.2binjavac" -Xlint:-options -deprecation -g -source 1.8 -target 1.8 -classpath "jarsversions1.121.12.jar;lib;lib*;jarslibrariescomgooglecodefindbugsjsr3053.0.1jsr305-3.0.1.jar;jarslibrariesnetjavajinputjinput2.0.5jinput-2.0.5.jar;jarslibrariescomibmicuicu4j-core-mojang51.2icu4j-core-mojang-51.2.jar;jarslibrariesorgapachehttpcomponentshttpcore4.3.2httpcore-4.3.2.jar;jarslibrariesorgapachelogginglog4jlog4j-api2.8.1log4j-api-2.8.1.jar;jarslibrariesorgapachecommonscommons-lang33.5commons-lang3-3.5.jar;jarslibrariesnetjavadevjnajna4.4.0jna-4.4.0.jar;jarslibrariesorglwjgllwjgllwjgl-platform2.9.4-nightly-20150209lwjgl-platform-2.9.4-nightly-20150209-natives-windows.jar;jarslibrariescompaulscodelibraryjavasound20101123libraryjavasound-20101123.jar;jarslibrariesnetsfjopt-simplejopt-simple5.0.3jopt-simple-5.0.3.jar;jarslibrariescommojangtext2speech1.10.3text2speech-1.10.3.jar;jarslibrariescomgoogleguavaguava21.0guava-21.0.jar;jarslibrariesoshi-projectoshi-core1.1oshi-core-1.1.jar;jarslibrariesorgapachehttpcomponentshttpclient4.3.3httpclient-4.3.3.jar;jarslibrariesorgapachecommonscommons-compress1.8.1commons-compress-1.8.1.jar;jarslibrariescommojangtext2speech1.10.3text2speech-1.10.3-natives-windows.jar;jarslibrariesitunimidsifastutil7.1.0fastutil-7.1.0.jar;jarslibrariesnetjavadevjnaplatform3.4.0platform-3.4.0.jar;jarslibrariescompaulscodecodecjorbis20101023codecjorbis-20101023.jar;jarslibrariescompaulscodesoundsystem20120107soundsystem-20120107.jar;jarslibrariescompaulscodelibrarylwjglopenal20100824librarylwjglopenal-20100824.jar;jarslibrariesorglwjgllwjgllwjgl_util2.9.4-nightly-20150209lwjgl_util-2.9.4-nightly-20150209.jar;jarslibrariescommons-codeccommons-codec1.10commons-codec-1.10.jar;jarslibrariesnetjavajutilsjutils1.0.0jutils-1.0.0.jar;jarslibrariescommojangpatchy1.1patchy-1.1.jar;jarslibrariescommons-loggingcommons-logging1.1.3commons-logging-1.1.3.jar;jarslibrariesorglwjgllwjgllwjgl2.9.4-nightly-20150209lwjgl-2.9.4-nightly-20150209.jar;jarslibrariescommons-iocommons-io2.5commons-io-2.5.jar;jarslibrariescommojangrealms1.10.17realms-1.10.17.jar;jarslibrariescommojangauthlib1.5.25authlib-1.5.25.jar;jarslibrariescomgooglecodegsongson2.8.0gson-2.8.0.jar;jarslibrariesnetjavajinputjinput-platform2.0.5jinput-platform-2.0.5-natives-windows.jar;jarslibrariescompaulscodecodecwav20101023codecwav-20101023.jar;jarslibrariesorgapachelogginglog4jlog4j-core2.8.1log4j-core-2.8.1.jar;jarslibrariesionettynetty-all4.1.9.Finalnetty-all-4.1.9.Final.jar" -sourcepath srcminecraft -d binminecraft @tempjava_src_client.txt' failed : 1
== ERRORS FOUND in JAVA CODE ==

this.block.addCollisionBoxToList(this, worldIn, pos, p_185908_3_, p_185908_4_, p_185908_5_, p_185908_6_);
^
srcminecraftnetminecraftblockstatepatternBlockStateMatcher.java:64: error: incompatible types: inference variable T#1 has incompatible bounds
return predicate.apply(blockState.getValue(property));
^
equality constraints: T#2
upper bounds: CAP#1,Comparable<T#1>
where T#1,T#2 are type-variables:
T#1 extends Comparable<T#1> declared in method <T#1>getValue(IProperty<T#1>)
T#2 extends Comparable<T#2> declared in method <T#2>matches(IBlockState,IProperty<T#2>,Predicate<?>)
where CAP#1 is a fresh type-variable:
CAP#1 extends Object from capture of ?
srcminecraftnetminecraftclientrendererentityRenderManager.java:266: error: incompatible types: bad type in conditional expression
return renderplayer != null ? renderplayer : this.playerRenderer;
^
RenderPlayer cannot be converted to Render<T>
where T is a type-variable:
T extends Entity declared in method <T>getEntityRenderObject(Entity)
srcminecraftnetminecraftclientrendererentityRenderManager.java:266: error: incompatible types: bad type in conditional expression
return renderplayer != null ? renderplayer : this.playerRenderer;
^
RenderPlayer cannot be converted to Render<T>
where T is a type-variable:
T extends Entity declared in method <T>getEntityRenderObject(Entity)
srcminecraftnetminecraftclientguiGuiIngame.java:1304: error: incompatible types: Object cannot be converted to IChatListener
for (IChatListener ichatlistener : (List)this.field_191743_I.get(p_191742_1_))
^
srcminecraftnetminecraftclientutilSearchTree.java:54: error: cannot find symbol
this.field_194045_b.func_194057_a(p_194039_1_, p_194039_2_.toString().toLowerCase(Locale.ROOT));
^
symbol:   variable p_194039_1_
location: class SearchTree<T>
where T is a type-variable:
T extends Object declared in class SearchTree
srcminecraftnetminecraftclientutilSearchTree.java:58: error: cannot find symbol
this.field_194044_a.func_194057_a(p_194041_1_, p_194041_2_.toLowerCase(Locale.ROOT));
^
symbol:   variable p_194041_1_
location: class SearchTree<T>
where T is a type-variable:
T extends Object declared in class SearchTree
srcminecraftnetminecraftclientutilSearchTree.java:58: error: cannot find symbol
this.field_194044_a.func_194057_a(p_194041_1_, p_194041_2_.toLowerCase(Locale.ROOT));
^
symbol:   method toLowerCase(Locale)
location: variable p_194041_2_ of type Object
srcminecraftnetminecraftclientguiGuiSnooper.java:51: error: incompatible types: Object cannot be converted to Entry<String,String>
for (Entry<String, String> entry : (new TreeMap(this.mc.getPlayerUsageSnooper().getCurrentStats())).entrySet())
                                              ^
srcminecraftnetminecraftclientguiGuiSnooper.java:59: error: incompatible types: Object cannot be converted to Entry<String,String>
for (Entry<String, String> entry1 : (new TreeMap(this.mc.getIntegratedServer().getPlayerUsageSnooper().getCurrentStats())).entrySet())
                                                                         ^
srcminecraftnetminecraftclientguirecipebookGuiButtonRecipeTab.java:33: error: incompatible types: Object cannot be converted to RecipeList
for (RecipeList recipelist : (List)RecipeBookClient.field_194086_e.get(this.field_193921_u))
^
srcminecraftnetminecraftclientrendererblockmodelModelBakery.java:492: error: incompatible types: Object cannot be converted to ModelResourceLocation
for (ModelResourceLocation modelresourcelocation1 : (Collection)entry.getValue())
^
srcminecraftnetminecraftclientrendererblockstatemapStateMap.java:57: error: incompatible types: Comparable cannot be converted to T
return p_187490_1_.getName((Comparable)p_187490_2_.remove(this.name));
^
where T is a type-variable:
T extends Comparable<T> declared in method <T>removeName(IProperty<T>,Map<IProperty<?>,Comparable<?>>)
srcminecraftnetminecraftclientresourcesFolderResourcePack.java:83: error: reference to listFiles is ambiguous
for (File file2 : file1.listFiles(DirectoryFileFilter.DIRECTORY))
^
both method listFiles(FilenameFilter) in File and method listFiles(FileFilter) in File match
srcminecraftnetminecraftutilmathCartesian.java:57: error: incompatible types: inference variable T#1 has incompatible bounds
return Arrays.asList(p_apply_1_);
^
equality constraints: T#2
lower bounds: Object
where T#1,T#2 are type-variables:
T#1 extends Object declared in method <T#1>asList(T#1...)
T#2 extends Object declared in class GetList
15 errors
100 warnings
==================
Initial client recompile failed, correct source then run updatemd5
Press any key to continue . . .

注意:我不得不删除一堆折旧警告来适应这个。

这应该只是在调试模式下实时运行Minecraft。

视频教程:https://www.youtube.com/watch?v=NoZ8AvQ

Realms Jar修复教程:https://youtu.be/17FQl1xpOF0

我发现了这个问题,我会把它放在这里,供任何分享我问题的人使用。我使用的是JDK10,这导致了很多版本错误。我下载了JDK和JRE 8,调整了我的系统变量,删除了失败的MCP eclipse工作区,重新下载了MCP,并再次使用Java 8运行了decompile.bat。它运行得很好。

以下是我使用的Java 8版本的下载链接:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

最新更新