Though I am not a Minecraft player, I was intrigued by this bug, so I went on a forum hunt. Conclusions:
Am I the only one with this problem?
Seems the problem is common:
And even sometimes occurs in other Java applications:
Do I HAVE to reboot?
Some people report that either
- Logging off and on from the Windows account
- Physically disconnecting and reconnecting the network cable
Will also fix the issue.
What causes it?
Some people claim it's a bug in the network driver, a limitation of a specific router, an issue with a specific modem, an over-saturation of network connections, a Java bug, a Windows bug... and all these people show that fixing the single thing they claim caused the problem, fixed the error :\
The truth appears to still be unknown, and the reason might even be different for different people, even though the symptoms are the same.
How do I solve it?
Different solutions appear to work for different people... here's a short summary of solutions that worked. I suggest trying one at a time and hoping one of them will work. Each of the solutions listed below have worked for more than one user but haven't worked for others.
Update the network adapter
The best thing I could find is this thread on the minecraftforum.net, and I advise reading it. Basically it suggests updating your network adapter drivers, and gives a good explanation of how to do it correctly for each of the affected cards.
Run the server from a virtual machine
The same thread as above suggests that if things still don't work, running the server inside a virtual machine - which is running something that isn't Windows XP - should work.
Use a different network adapter
Another solution which seemed to have worked for more than one player is using a different network card.
Buffer the network packets sent by Minecraft
In this thread, a user analyzes the connection and proposes to use an application to buffer the packets. He even wrote that application and uploaded it - maybe it's worth giving it a go.
Change network adapter settings
The following solution, taken from here, seemed to have worked for more than one user - even those not using an Atheros card (just find comparable settings):
Go to My Computer and right click on the icon.
Click on Properties.
Click on the Hardware tab, then click on the Device Manager button to open the Manager.
Click the little (+) icon next to Network Adapters.
Find your network adapter. For me it's called Atheros AR8121/AR8113 PCI-E Ethernet Controller.
Right click on it and go to Properties.
Click on the Advanced tab.
You should see a list of properties on the left and a combo box on the right.
In the properties list, click on Flow Control.
Make sure that is set to Off.
Next check the Max IRQ per Second and make sure that it's set to 5000.
Also check that Maximum Frame Size is set to 1514.
Now click on Number of Rx Buffers. Change this to the maximum value that it will support.
Do the same for the Number of Tx Buffers.
This is a known bug, and is still unresolved in the most recent release (1.7.2). There are a lot of player theories on what "triggers" it (stairs, ladders, trap doors, etc.) but no official consensus on what causes it, and as of right now, no fix for it. Other than manually "digging out" the mob. (https://mojang.atlassian.net/browse/MC-119)
Best Answer
New answer, so everyone can follow the steps:
Open up a notepad.
Type the following:
C:\Program Files\Java\jre6\bin\java" -Xms2048M -Xmx2048M -jar "C:\minecraft.jar"
File -> Save as. Choose All file types, and save it like:
C:\minecraft.bat
Get minecraft's "linux version" at http://minecraft.net. Save it to
C:\minecraft.jar
[This step is not necessary for jre7 running on Windows 7, you can point the script to minecraft.exe]You can skip this step if you are running 32 bit windows! Get a 64-bit Java runtime. This wouldn't be a neccessary step, but since Minecraft is a resource hog, you may want to squeeze out all the juice from your computer. You can find the 64-bit version here.
Double-Click the minecraft.bat file.
What does the .bat file do?
-Xmx
and-Xms
part. These are settings for the heap size. Set these according how much memory you have. Explanation for this Heap stuff.-jar C:\...
is an argument too, telling Java where it can find the Minecraft.jar launcher.(Also, check the
C:\minecraft.jar
,C:\Program Files\Java\jre6\bin\java.exe
paths. These things may vary.)A little extra, performance improvement: (The argument part works only on Windows!)
Add the following arguments to the .bat file:
"C:\Program Files\Java\jre6\bin\java" -Dsun.java2d.noddraw=false -Dsun.java2d.d3d=true -Dsun.java2d.opengl=false -Xms2048M -Xmx2048M -jar "C:\minecraft.jar"
This way, we tell Java it should use DirectX to draw. This helped me a lot.
Another improvement can be achieved (Cross-platform!) if you install Java JRE7. It's in a beta state, but perfect for us, playing Minecraft. You only have to modify the .bat file, so it shows:
C:\Program Files\Java\jre7\bin\java
instead of theC:\Program Files\Java\jre6\bin\java
(Notice the number in the "jre".)