10-23-2014, 07:34 AM
(warning:post not edited except where it is extremely important. Read all instructions before actually trying to fix minecraft.)
Prerequisites: if you have less than 2 or 3 GB of RAM, allocate less than 500MB to minecraft and see if that fixes the problem. If it does, slowly raise the amount until you get the error again. Your operating system may be refusing to allocate 1GB of space because the process table divides the memory into 64KB blocks and distributes them somewhat equally between programs. This would lead to the program trying to access memory that belongs to another process because it thinks it has 1GB, and then the operating system denies the memory access and forcibly kills the program.
If that doesn't work:
First part:
You will need either Linux, a Unix, or Cygwin. (Cygwin is a Linux shell for Windows, the command prompt might be able to do this, but I doubt it.)
If you don't have these, download Cygwin from here. I will help you from there. If you are unsure if you have these, verify that you aren't running windows. That's your answer.
Step 1:
If you have a *nix system, ignore this step.
You need to go to your minecraft folder in Windows Explorer and knock that space out of the "minecraft launcher" folder. Then enter the folder and knock the space out of Minecraft Launcher.exe (this has no effect on windows, but linux systems don't allow spaces in file names, so cygwin won't be able to get to the directory. If any of the folders this folder's path also have spaces, they will need to be concatenated as well.)
Step 2:
Launch the terminal and cd to your minecraft directory.
Step3:
type "ls" without quotes, this lists all files in the directory. Verify that there isn't a space in MinecraftLauncher.exe
Step4:
a.) verify there isn't a text.txt file, if for some bizzare reason there is, choose a different name for part c
b.) type the following line
MincraftLauncher.exe --help
This gives you a list of extensions for the minecraft launcher (notice how "--help" is one of them?) type them in with their syntax for extra magic.
b.) type the following line
./MinecraftLauncher.exe [operation] > text.txt
This will create a new file in the directory called text.txt and cause a launch of minecraft, every process call and a bunch of useful debugging stuff gets written to the command line screen. The operation field is optional, but if filled, minecraft will execute either just the requested operation or it will launch with the operation. (for example --help didn't launch minecraft, just the help). The pipe "> text.txt" wrights this all to text.txt. Because of this routing, you won't actually see what happens.
Step5: Once your launcher has failed, wait a couple of seconds (to make sure it finishes wrighting), then either go back to windows explorer and open text.txt in notepad, or do the following (note, if you don't know how to use vim, do not try this. Trust me, you will not figure it out on your own.)
Type, without quotes "vim text.txt"
This opens the text file in vim. What you see is everything that the launcher requested, and it's completion status, followed by reports of unimportant details. For example, in mine, the script that verifies my account fails because I'm using cracked minecraft.
Now, if the actual exe failed on launch, you should actually get a report in the shell saying exactly why it failed and at what line it failed at in the java script that failed. This failure is probably going to be caused by the operating system refusing to allocate memory or detecting a memory violation from what it sounds like.
Okay, If you get away without any reports, and it still doesn't work, you'll need the Java process report thing again, but you will also know from your text file exactly which scripts are still working properly. Between the two, there is no way you will not be able to find the error. If you are unsure what the shell error means, these are all well documented on the interwebz.
The second part:
GCC is the GNU Compiler Collection. I think it has the ability to compile java code into machine code in order to speed up the program by not having it compile in runtime. -O3 is the highest level of general optimization. -mtune=native optimizes for the instruction set quirks of the computer doing the compile, and -march=normal optimizes for the architecture of the computer doing the compile.
Prerequisites: if you have less than 2 or 3 GB of RAM, allocate less than 500MB to minecraft and see if that fixes the problem. If it does, slowly raise the amount until you get the error again. Your operating system may be refusing to allocate 1GB of space because the process table divides the memory into 64KB blocks and distributes them somewhat equally between programs. This would lead to the program trying to access memory that belongs to another process because it thinks it has 1GB, and then the operating system denies the memory access and forcibly kills the program.
If that doesn't work:
First part:
You will need either Linux, a Unix, or Cygwin. (Cygwin is a Linux shell for Windows, the command prompt might be able to do this, but I doubt it.)
If you don't have these, download Cygwin from here. I will help you from there. If you are unsure if you have these, verify that you aren't running windows. That's your answer.
Step 1:
If you have a *nix system, ignore this step.
You need to go to your minecraft folder in Windows Explorer and knock that space out of the "minecraft launcher" folder. Then enter the folder and knock the space out of Minecraft Launcher.exe (this has no effect on windows, but linux systems don't allow spaces in file names, so cygwin won't be able to get to the directory. If any of the folders this folder's path also have spaces, they will need to be concatenated as well.)
Step 2:
Launch the terminal and cd to your minecraft directory.
Step3:
type "ls" without quotes, this lists all files in the directory. Verify that there isn't a space in MinecraftLauncher.exe
Step4:
a.) verify there isn't a text.txt file, if for some bizzare reason there is, choose a different name for part c
b.) type the following line
MincraftLauncher.exe --help
This gives you a list of extensions for the minecraft launcher (notice how "--help" is one of them?) type them in with their syntax for extra magic.
b.) type the following line
./MinecraftLauncher.exe [operation] > text.txt
This will create a new file in the directory called text.txt and cause a launch of minecraft, every process call and a bunch of useful debugging stuff gets written to the command line screen. The operation field is optional, but if filled, minecraft will execute either just the requested operation or it will launch with the operation. (for example --help didn't launch minecraft, just the help). The pipe "> text.txt" wrights this all to text.txt. Because of this routing, you won't actually see what happens.
Step5: Once your launcher has failed, wait a couple of seconds (to make sure it finishes wrighting), then either go back to windows explorer and open text.txt in notepad, or do the following (note, if you don't know how to use vim, do not try this. Trust me, you will not figure it out on your own.)
Type, without quotes "vim text.txt"
This opens the text file in vim. What you see is everything that the launcher requested, and it's completion status, followed by reports of unimportant details. For example, in mine, the script that verifies my account fails because I'm using cracked minecraft.
Now, if the actual exe failed on launch, you should actually get a report in the shell saying exactly why it failed and at what line it failed at in the java script that failed. This failure is probably going to be caused by the operating system refusing to allocate memory or detecting a memory violation from what it sounds like.
Okay, If you get away without any reports, and it still doesn't work, you'll need the Java process report thing again, but you will also know from your text file exactly which scripts are still working properly. Between the two, there is no way you will not be able to find the error. If you are unsure what the shell error means, these are all well documented on the interwebz.
The second part:
GCC is the GNU Compiler Collection. I think it has the ability to compile java code into machine code in order to speed up the program by not having it compile in runtime. -O3 is the highest level of general optimization. -mtune=native optimizes for the instruction set quirks of the computer doing the compile, and -march=normal optimizes for the architecture of the computer doing the compile.