So you're a slave to warning messages and you want Minecraft to use 64-bit Java. Here's how to do it on the command line. These instructions were crafted on MacOS Lion, which should prefer 64-bit Java when possible (Applications/Utilities/Java Preferences). These instructions assume the default Minecraft.app location, in the main /Applications folder. I had a few tabs open, while I was sussing this out, including
an excellent forum post, a post
on JavaApplicationStub bits, and the official
reference for CF keys.
Here we go.
Swap out Minecraft's JavaApplicationStub for the current OS' version:
gzip /Applications/Minecraft.app/Contents/MacOS/JavaApplicationStub
cp /System/Library/Frameworks/JavaVM.framework/Versions/Current/Resources/MacOS/JavaApplicationStub /Applications/Minecraft.app/Contents/MacOS/
Then, add 64-bit architecture to Minecraft's possibilities:
/usr/libexec/PlistBuddy -c "Add :Java:JVMArchs:0 string 'x86_64'" /Applications/Minecraft.app/Contents/Info.plist
Launch. That should do it. Watch out for creepers. Have a nice day.
* * *
If everything goes wrong, here's how to roll back from here to your original configuration:
rm /Applications/Minecraft.app/Contents/MacOS/JavaApplicationStub
gunzip /Applications/Minecraft.app/Contents/MacOS/JavaApplicationStub.gz
/usr/libexec/PlistBuddy -c "Delete :Java:JVMArchs:0" /Applications/Minecraft.app/Contents/Info.plist
How to tell if you're using a 64-bit kernel in the first place is easy. Look for "x86_84" in the output of the below command. If you see i386 or ppc, you might be on a system that can't handle 64-bit, or you might need to instruct the system to boot with a 64-bit kernel.
uname -a # should include "x86_64" in the output.
What's this JavaApplicationStub anyways? It's like a chain loader .. only different! When you double-click the Minecraft icon, the Finder looks in Info.plist for the CFBundleExecutable value. It launches that, to start the app. The JavaApplicationStub is a native binary that helps invoke Java in the right way to get Minecraft running.
What's that PlistBuddy command? It's a command-line tool included in more recent releases of Mac OS, that lets you directly read, write, erase, fold, spindle and mutilate Plist.info files. It's got a man page, but here's a quick example of reading your JVMArchs array, if you want to double-check that it's got x86_64 at the top:
/usr/libexec/PlistBuddy -c "Print :Java:JVMArchs" /Applications/Minecraft.app/Contents/Info.plist
What's with you and the command line stuff? I don't know. I suspect that my epitaph will simply be an elegant one-liner.