Error: Could not find or load main class net.minecraft.launchwrapper.Launch when launching Minecraft 1.12.2 with Forge

12,429

Ok, actually, on Windows the classpath separator is ; not : Replacing separator fixes this issue

Share:
12,429
Kuba Chrabański
Author by

Kuba Chrabański

Updated on June 04, 2022

Comments

  • Kuba Chrabański
    Kuba Chrabański almost 2 years

    I've written a launcher for Minecraft 1.12.2 in Python, which just prepares a command and runs it using subprocess.

    This is the command formed on Linux Ubuntu:

    #!/usr/bin/env bash
    
    java -Xmx4G -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32M -Djava.library.path=/tmp/tmp2dl6pidh -cp /home/kuba/Desktop/launch/package/libraries/org/apache/maven/maven-artifact/3.5.3/maven-artifact-3.5.3.jar:/home/kuba/Desktop/launch/package/libraries/org/apache/httpcomponents/httpcore/4.3.2/httpcore-4.3.2.jar:/home/kuba/Desktop/launch/package/libraries/org/apache/httpcomponents/httpclient/4.3.3/httpclient-4.3.3.jar:/home/kuba/Desktop/launch/package/libraries/org/apache/logging/log4j/log4j-core/2.8.1/log4j-core-2.8.1.jar:/home/kuba/Desktop/launch/package/libraries/org/apache/logging/log4j/log4j-api/2.8.1/log4j-api-2.8.1.jar:/home/kuba/Desktop/launch/package/libraries/org/apache/commons/commons-compress/1.8.1/commons-compress-1.8.1.jar:/home/kuba/Desktop/launch/package/libraries/org/apache/commons/commons-lang3/3.5/commons-lang3-3.5.jar:/home/kuba/Desktop/launch/package/libraries/org/lwjgl/lwjgl/lwjgl_util/2.9.4-nightly-20150209/lwjgl_util-2.9.4-nightly-20150209.jar:/home/kuba/Desktop/launch/package/libraries/org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-linux.jar:/home/kuba/Desktop/launch/package/libraries/org/lwjgl/lwjgl/lwjgl/2.9.4-nightly-20150209/lwjgl-2.9.4-nightly-20150209.jar:/home/kuba/Desktop/launch/package/libraries/org/scala-lang/scala-xml_2.11/1.0.2/scala-xml_2.11-1.0.2.jar:/home/kuba/Desktop/launch/package/libraries/org/scala-lang/scala-compiler/2.11.1/scala-compiler-2.11.1.jar:/home/kuba/Desktop/launch/package/libraries/org/scala-lang/scala-reflect/2.11.1/scala-reflect-2.11.1.jar:/home/kuba/Desktop/launch/package/libraries/org/scala-lang/scala-swing_2.11/1.0.1/scala-swing_2.11-1.0.1.jar:/home/kuba/Desktop/launch/package/libraries/org/scala-lang/scala-parser-combinators_2.11/1.0.1/scala-parser-combinators_2.11-1.0.1.jar:/home/kuba/Desktop/launch/package/libraries/org/scala-lang/scala-actors-migration_2.11/1.1.0/scala-actors-migration_2.11-1.1.0.jar:/home/kuba/Desktop/launch/package/libraries/org/scala-lang/scala-library/2.11.1/scala-library-2.11.1.jar:/home/kuba/Desktop/launch/package/libraries/org/scala-lang/plugins/scala-continuations-plugin_2.11.1/1.0.2/scala-continuations-plugin_2.11.1-1.0.2.jar:/home/kuba/Desktop/launch/package/libraries/org/scala-lang/plugins/scala-continuations-library_2.11/1.0.2/scala-continuations-library_2.11-1.0.2.jar:/home/kuba/Desktop/launch/package/libraries/org/ow2/asm/asm-all/5.2/asm-all-5.2.jar:/home/kuba/Desktop/launch/package/libraries/it/unimi/dsi/fastutil/7.1.0/fastutil-7.1.0.jar:/home/kuba/Desktop/launch/package/libraries/commons-codec/commons-codec/1.10/commons-codec-1.10.jar:/home/kuba/Desktop/launch/package/libraries/oshi-project/oshi-core/1.1/oshi-core-1.1.jar:/home/kuba/Desktop/launch/package/libraries/commons-logging/commons-logging/1.1.3/commons-logging-1.1.3.jar:/home/kuba/Desktop/launch/package/libraries/commons-io/commons-io/2.5/commons-io-2.5.jar:/home/kuba/Desktop/launch/package/libraries/net/sf/jopt-simple/jopt-simple/5.0.3/jopt-simple-5.0.3.jar:/home/kuba/Desktop/launch/package/libraries/net/sf/trove4j/trove4j/3.0.3/trove4j-3.0.3.jar:/home/kuba/Desktop/launch/package/libraries/net/java/jinput/jinput/2.0.5/jinput-2.0.5.jar:/home/kuba/Desktop/launch/package/libraries/net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-linux.jar:/home/kuba/Desktop/launch/package/libraries/net/java/dev/jna/platform/3.4.0/platform-3.4.0.jar:/home/kuba/Desktop/launch/package/libraries/net/java/dev/jna/jna/4.4.0/jna-4.4.0.jar:/home/kuba/Desktop/launch/package/libraries/net/java/jutils/jutils/1.0.0/jutils-1.0.0.jar:/home/kuba/Desktop/launch/package/libraries/net/minecraftforge/forge/1.12.2-14.23.4.2705/forge-1.12.2-14.23.4.2705.jar:/home/kuba/Desktop/launch/package/libraries/net/minecraft/launchwrapper/1.12/launchwrapper-1.12.jar:/home/kuba/Desktop/launch/package/libraries/lzma/lzma/0.0.1/lzma-0.0.1.jar:/home/kuba/Desktop/launch/package/libraries/io/netty/netty-all/4.1.9.Final/netty-all-4.1.9.Final.jar:/home/kuba/Desktop/launch/package/libraries/java3d/vecmath/1.5.2/vecmath-1.5.2.jar:/home/kuba/Desktop/launch/package/libraries/com/google/guava/guava/21.0/guava-21.0.jar:/home/kuba/Desktop/launch/package/libraries/com/google/code/gson/gson/2.8.0/gson-2.8.0.jar:/home/kuba/Desktop/launch/package/libraries/com/paulscode/codecwav/20101023/codecwav-20101023.jar:/home/kuba/Desktop/launch/package/libraries/com/paulscode/soundsystem/20120107/soundsystem-20120107.jar:/home/kuba/Desktop/launch/package/libraries/com/paulscode/librarylwjglopenal/20100824/librarylwjglopenal-20100824.jar:/home/kuba/Desktop/launch/package/libraries/com/paulscode/libraryjavasound/20101123/libraryjavasound-20101123.jar:/home/kuba/Desktop/launch/package/libraries/com/paulscode/codecjorbis/20101023/codecjorbis-20101023.jar:/home/kuba/Desktop/launch/package/libraries/com/typesafe/config/1.2.1/config-1.2.1.jar:/home/kuba/Desktop/launch/package/libraries/com/typesafe/akka/akka-actor_2.11/2.3.3/akka-actor_2.11-2.3.3.jar:/home/kuba/Desktop/launch/package/libraries/com/ibm/icu/icu4j-core-mojang/51.2/icu4j-core-mojang-51.2.jar:/home/kuba/Desktop/launch/package/libraries/com/mojang/authlib/1.5.25/authlib-1.5.25.jar:/home/kuba/Desktop/launch/package/libraries/com/mojang/text2speech/1.10.3/text2speech-1.10.3-natives-linux.jar:/home/kuba/Desktop/launch/package/libraries/com/mojang/text2speech/1.10.3/text2speech-1.10.3.jar:/home/kuba/Desktop/launch/package/libraries/com/mojang/patchy/1.1/patchy-1.1.jar:/home/kuba/Desktop/launch/package/libraries/com/mojang/realms/1.10.22/realms-1.10.22.jar:/home/kuba/Desktop/launch/package/libraries/jline/jline/2.13/jline-2.13.jar:/home/kuba/Desktop/launch/package/versions/1.12.2/1.12.2.jar net.minecraft.launchwrapper.Launch --username kuba --version 1.12.2 --gameDir /home/kuba/Desktop/launch/package --assetsDir /home/kuba/Desktop/launch/package/assets --assetIndex 1.12 --uuid c8db861e4ea74ebba869459e68de5e15 --accessToken 6cf19a22fac84ebfa62ba697b899bd68 --userType offline --tweakClass net.minecraftforge.fml.common.launcher.FMLTweaker --versionType Forge
    

    This is the command formed on Windows 10 Home:

    @echo off
    
    java -Xmx4G -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32M -Djava.library.path=C:\Users\kubac\AppData\Local\Temp\tmpsmseu5hx -cp C:\Users\kubac\Desktop\launch\package\libraries\com\google\code\gson\gson\2.8.0\gson-2.8.0.jar:C:\Users\kubac\Desktop\launch\package\libraries\com\google\guava\guava\21.0\guava-21.0.jar:C:\Users\kubac\Desktop\launch\package\libraries\com\ibm\icu\icu4j-core-mojang\51.2\icu4j-core-mojang-51.2.jar:C:\Users\kubac\Desktop\launch\package\libraries\com\mojang\authlib\1.5.25\authlib-1.5.25.jar:C:\Users\kubac\Desktop\launch\package\libraries\com\mojang\patchy\1.1\patchy-1.1.jar:C:\Users\kubac\Desktop\launch\package\libraries\com\mojang\realms\1.10.22\realms-1.10.22.jar:C:\Users\kubac\Desktop\launch\package\libraries\com\mojang\text2speech\1.10.3\text2speech-1.10.3-natives-windows.jar:C:\Users\kubac\Desktop\launch\package\libraries\com\mojang\text2speech\1.10.3\text2speech-1.10.3.jar:C:\Users\kubac\Desktop\launch\package\libraries\com\paulscode\codecjorbis\20101023\codecjorbis-20101023.jar:C:\Users\kubac\Desktop\launch\package\libraries\com\paulscode\codecwav\20101023\codecwav-20101023.jar:C:\Users\kubac\Desktop\launch\package\libraries\com\paulscode\libraryjavasound\20101123\libraryjavasound-20101123.jar:C:\Users\kubac\Desktop\launch\package\libraries\com\paulscode\librarylwjglopenal\20100824\librarylwjglopenal-20100824.jar:C:\Users\kubac\Desktop\launch\package\libraries\com\paulscode\soundsystem\20120107\soundsystem-20120107.jar:C:\Users\kubac\Desktop\launch\package\libraries\com\typesafe\akka\akka-actor_2.11\2.3.3\akka-actor_2.11-2.3.3.jar:C:\Users\kubac\Desktop\launch\package\libraries\com\typesafe\config\1.2.1\config-1.2.1.jar:C:\Users\kubac\Desktop\launch\package\libraries\commons-codec\commons-codec\1.10\commons-codec-1.10.jar:C:\Users\kubac\Desktop\launch\package\libraries\commons-io\commons-io\2.5\commons-io-2.5.jar:C:\Users\kubac\Desktop\launch\package\libraries\commons-logging\commons-logging\1.1.3\commons-logging-1.1.3.jar:C:\Users\kubac\Desktop\launch\package\libraries\io\netty\netty-all\4.1.9.Final\netty-all-4.1.9.Final.jar:C:\Users\kubac\Desktop\launch\package\libraries\it\unimi\dsi\fastutil\7.1.0\fastutil-7.1.0.jar:C:\Users\kubac\Desktop\launch\package\libraries\java3d\vecmath\1.5.2\vecmath-1.5.2.jar:C:\Users\kubac\Desktop\launch\package\libraries\jline\jline\2.13\jline-2.13.jar:C:\Users\kubac\Desktop\launch\package\libraries\lzma\lzma\0.0.1\lzma-0.0.1.jar:C:\Users\kubac\Desktop\launch\package\libraries\net\java\dev\jna\jna\4.4.0\jna-4.4.0.jar:C:\Users\kubac\Desktop\launch\package\libraries\net\java\dev\jna\platform\3.4.0\platform-3.4.0.jar:C:\Users\kubac\Desktop\launch\package\libraries\net\java\jinput\jinput\2.0.5\jinput-2.0.5.jar:C:\Users\kubac\Desktop\launch\package\libraries\net\java\jinput\jinput-platform\2.0.5\jinput-platform-2.0.5-natives-windows.jar:C:\Users\kubac\Desktop\launch\package\libraries\net\java\jutils\jutils\1.0.0\jutils-1.0.0.jar:C:\Users\kubac\Desktop\launch\package\libraries\net\minecraft\launchwrapper\1.12\launchwrapper-1.12.jar:C:\Users\kubac\Desktop\launch\package\libraries\net\minecraftforge\forge\1.12.2-14.23.4.2705\forge-1.12.2-14.23.4.2705.jar:C:\Users\kubac\Desktop\launch\package\libraries\net\sf\jopt-simple\jopt-simple\5.0.3\jopt-simple-5.0.3.jar:C:\Users\kubac\Desktop\launch\package\libraries\net\sf\trove4j\trove4j\3.0.3\trove4j-3.0.3.jar:C:\Users\kubac\Desktop\launch\package\libraries\org\apache\commons\commons-compress\1.8.1\commons-compress-1.8.1.jar:C:\Users\kubac\Desktop\launch\package\libraries\org\apache\commons\commons-lang3\3.5\commons-lang3-3.5.jar:C:\Users\kubac\Desktop\launch\package\libraries\org\apache\httpcomponents\httpclient\4.3.3\httpclient-4.3.3.jar:C:\Users\kubac\Desktop\launch\package\libraries\org\apache\httpcomponents\httpcore\4.3.2\httpcore-4.3.2.jar:C:\Users\kubac\Desktop\launch\package\libraries\org\apache\logging\log4j\log4j-api\2.8.1\log4j-api-2.8.1.jar:C:\Users\kubac\Desktop\launch\package\libraries\org\apache\logging\log4j\log4j-core\2.8.1\log4j-core-2.8.1.jar:C:\Users\kubac\Desktop\launch\package\libraries\org\apache\maven\maven-artifact\3.5.3\maven-artifact-3.5.3.jar:C:\Users\kubac\Desktop\launch\package\libraries\org\lwjgl\lwjgl\lwjgl\2.9.4-nightly-20150209\lwjgl-2.9.4-nightly-20150209.jar:C:\Users\kubac\Desktop\launch\package\libraries\org\lwjgl\lwjgl\lwjgl-platform\2.9.4-nightly-20150209\lwjgl-platform-2.9.4-nightly-20150209-natives-windows.jar:C:\Users\kubac\Desktop\launch\package\libraries\org\lwjgl\lwjgl\lwjgl_util\2.9.4-nightly-20150209\lwjgl_util-2.9.4-nightly-20150209.jar:C:\Users\kubac\Desktop\launch\package\libraries\org\ow2\asm\asm-all\5.2\asm-all-5.2.jar:C:\Users\kubac\Desktop\launch\package\libraries\org\scala-lang\plugins\scala-continuations-library_2.11\1.0.2\scala-continuations-library_2.11-1.0.2.jar:C:\Users\kubac\Desktop\launch\package\libraries\org\scala-lang\plugins\scala-continuations-plugin_2.11.1\1.0.2\scala-continuations-plugin_2.11.1-1.0.2.jar:C:\Users\kubac\Desktop\launch\package\libraries\org\scala-lang\scala-actors-migration_2.11\1.1.0\scala-actors-migration_2.11-1.1.0.jar:C:\Users\kubac\Desktop\launch\package\libraries\org\scala-lang\scala-compiler\2.11.1\scala-compiler-2.11.1.jar:C:\Users\kubac\Desktop\launch\package\libraries\org\scala-lang\scala-library\2.11.1\scala-library-2.11.1.jar:C:\Users\kubac\Desktop\launch\package\libraries\org\scala-lang\scala-parser-combinators_2.11\1.0.1\scala-parser-combinators_2.11-1.0.1.jar:C:\Users\kubac\Desktop\launch\package\libraries\org\scala-lang\scala-reflect\2.11.1\scala-reflect-2.11.1.jar:C:\Users\kubac\Desktop\launch\package\libraries\org\scala-lang\scala-swing_2.11\1.0.1\scala-swing_2.11-1.0.1.jar:C:\Users\kubac\Desktop\launch\package\libraries\org\scala-lang\scala-xml_2.11\1.0.2\scala-xml_2.11-1.0.2.jar:C:\Users\kubac\Desktop\launch\package\libraries\oshi-project\oshi-core\1.1\oshi-core-1.1.jar:C:\Users\kubac\Desktop\launch\package\versions\1.12.2\1.12.2.jar net.minecraft.launchwrapper.Launch --username kuba --version 1.12.2 --gameDir C:\Users\kubac\Desktop\launch\package --assetsDir C:\Users\kubac\Desktop\launch\package\assets --assetIndex 1.12 --uuid 1e12c9641d68419c8e0ef3c43adc9678 --accessToken c270917a4aa44267859663b52ebdf07f --userType offline --tweakClass net.minecraftforge.fml.common.launcher.FMLTweaker --versionType Forge
    

    PROBLEM: Ubuntu version executes perfectly, without any complain, but Windows version says:

    Error: Could not find or load main class net.minecraft.launchwrapper.Launch
    

    and it does not start at all.

    As u see Ubuntu and Windows commands are almost identical.

    The minecraft installation (used on both Ubuntu and Windows) that I'm trying to start, comes from Windows (generated by official launcher, forge is installed, I only replace libraries marked as natives because they are platform dependent), and it can be started using official launcher on both platforms without any problems, so I assume that there is no issue with missing or corrupted minecraft files. Moreover I was able to start it using my custom launcher but only on Ubuntu, as I wrote above.

    Do u guys have any suggestions on what am I doing wrong?

    PS I've tried to start Vanilla Minecraft using my custom launcher and the issue is exactly the same, it works on Ubuntu, but fails on Windows with the same error (ofc it mentions vanilla class instead)

    EDIT I do not provide the Python code as it is long, and it just extracts natives to a temporary folder and forms the command to launch minecraft, which could be just written by hand and pasted into a script and executed.

    • Kuba Chrabański
      Kuba Chrabański over 5 years
      But I’m writing it for my friends and as a challenge, there will be no authentication, access token and uuid is randomly generated, so there is no risk of losing any data (non-premium)
    • Kuba Chrabański
      Kuba Chrabański over 5 years
      Minecraft has an option to be run without valid access token, moreover this launcher is meant to be used by my friends only and not shared to the public
    • Kuba Chrabański
      Kuba Chrabański over 5 years
      Moreover they could use any other working nonpremium launcher like SK, so the only reason why I’m writing this one is convinience, because all non premium launchers are bloated with ads and unneccessary options
    • Kuba Chrabański
      Kuba Chrabański over 5 years
      To sum up if u want to give advices not connected with the main topic, then u r wasting time
    • Kuba Chrabański
      Kuba Chrabański over 5 years
      Ok so if u need a deeper explanation then I will provide it. They own a premium account but as u mentioned custom launcher is a source of leakage and we also to want to use new nicknames as the accounts where bought 6 yrs ago. Furthermore it is going to be a modpack, so using a custom launcher will make it easier for me to send them updates (it's already built compares hashes and downloads outdated files). So pls stop posting trash in the comments because people like u make forums useless. It's my last reply to u, no more time wasted. Have a nice day!! ;))
    • Kuba Chrabański
      Kuba Chrabański over 5 years
      PS minecraft can be played easily without paying that is why Mojang divided gameplay into "online mode", and "offline mode", customers pay for security, access to realms and premium servers, skins and always convenient and available updates