[MCL-1049] Launcher does not detect Java 7/8 while it is present - Mac OS X Created: 07/Jul/13  Updated: 11/Sep/15  Resolved: 11/Sep/15

Status: Resolved
Project: Minecraft Launcher
Component/s: None
Affects Version/s: 1.0.8, 1.0.9, 1.0.10, 1.3.1, 1.3.3, 1.3.4, 1.3.5, 1.3.6, 1.3.7, 1.3.8, 1.4.4, 1.4.5
Fix Version/s: 1.6.44

Type: Bug
Reporter: Niels Hakkers Assignee: [Mojang] Grum (Erik Broes)
Resolution: Fixed Votes: 57
Labels: java7, mac
Environment:

Mac OS 10.9
Java SE Runtime Environment 1.7.0_25-b15 (http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html)


Attachments: PNG File bootstrapjar.png     PNG File functioningMinecraftAppLauncher.png     JPEG File Missing Java SE 6.jpg     PNG File Screen Shot 2014-06-07 at 11.08.43 AM.png     JPEG File Workarround.jpg    
Issue Links:
Duplicate
is duplicated by MC-58088 Minecraft on Mac Uses Apple Java Inst... Resolved
is duplicated by MC-73285 Cant play Minecraft on OS X 10.10 Resolved
is duplicated by MC-73792 OSX 10.9-10.10 Java 7/8 SE Incompatib... Resolved
is duplicated by MC-74079 minecraft cannot run on mac osx 10.10 Resolved
is duplicated by MCL-1427 Bootstrap fails Resolved
is duplicated by MCL-1752 Mac Minecraft .app package requires J... Resolved
is duplicated by MCL-1961 Minecraft fails to choose correct Mac... Resolved
is duplicated by MCL-2535 Launcher uses incorrect Java version Resolved
is duplicated by MCL-3164 Mac Launcher requires 1.6 Java when 1... Resolved
is duplicated by MCL-3214 Cannot open minecraft, getting stuck ... Resolved
is duplicated by MCL-3398 Java SE 8 8u31 won't allow me to open... Resolved
is duplicated by MCL-3401 Minecraft 1.8 still enforces JAVA 6 o... Resolved
Relates
relates to MCL-1988 Launcher fails to load after OS X 10.... Resolved
CHK:
Confirmation Status: Confirmed

 Description   
Moderator Note

https://twitter.com/jbernhardsson/status/642344336567476224

The new OSX launcher for Minecraft is finaly done, you can download it here https://minecraft.net/download

Moderator Note

With the JRE 7 or 8 installed, the launcher can launch the game using it, by changing the Executable in the Edit Profile menu to the following:

  • /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java

I installed Java 7 on my Mac but the launcher still does not recognizes the Java install.

The installation path of Java on my mac is:
/Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home

There is a workarround to start the game with Java 7, what you do is this:

1.) Start Terminal.app
2.) cd /Applications (to the location of the launcher)
3.) java -d64 -Xmx1024M -jar Minecraft.app/Contents/Resources/Java/Bootstrap.jar (as which -d64 forces it open 64 bits)
And then the launcher will start with Java SE 7

If you do install Java SE 6 and start the launcher, it will use Java SE 6. But using my workarround you will boot it Java SE 7 (depending on the standard Java version on the Mac)

Translation of the first screenshot of the middle screen: "To run 'Minecraft', you will nee Java SE 6-Runtime. Would you like to install now?"



 Comments   
Comment by [Mod] Ezekiel (ezfe) [ 07/Jul/13 ]

If you don't mind me asking, what does it matter?

Comment by Niels Hakkers [ 07/Jul/13 ]

If only Java SE 7 is installed it wont start the launcher out itself

Comment by [Mod] Ezekiel (ezfe) [ 07/Jul/13 ]

Can't you just install Java 6?

Comment by Komoden [ 13/Jul/13 ]

This works wonders... starting it normally (not using this Terminal workaround) causes the launcher to fail on my system with an "out of memory exception - java heap size".

Starting it using terminal seems to work just fine... also makes it use the Java 7 instead of 6
Please make Minecraft use the correct version of Java installed... why should it default to Java 6 when you have Java 7 installed???????

Comment by [Mojang] Grum (Erik Broes) [ 14/Jul/13 ]

I think your $JAVA_HOME environment variable is still pointing at java6.

Feel free to see where it is when you do: echo $JAVA_HOME on the console.

Comment by Niels Hakkers [ 15/Jul/13 ]

In first instance I didn't got anything back when running echo $JAVA_HOME. But after some google-ing it appears that you have to bind /usr/libexec/java_hom to $JAVA_HOME by running export JAVA_HOME=$(/usr/libexec/java_home) so that when you run echo $JAVA_HOME, you get /Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home.

Google source: http://www.mkyong.com/java/how-to-set-java_home-environment-variable-on-mac-os-x/

Comment by Niels Hakkers [ 15/Jul/13 ]

And no, Minecraft still wants you to download Java SE-6 Runtime

Comment by [Mod] Kumasasa [ 20/Jul/13 ]

This is a technical support issue; this site is for bug reports only. For technical support please use the Mojang Support Center.

Comment by Ben Lewis [ 23/Oct/13 ]

The problem is that the current .app is meant for Apple jvm so cant start an Oracle jvm this is more outlined in this forum post and also the solution of creating another .app using oracles app bundler. I feel this is a problem as java 6 needs to be installed even if java 7+ is installed and as java 6 is starting to not being supported now.

Comment by Lost The Trail [ 23/Oct/13 ]

This is not a technical support issue. The launcher fails to launch when Java 6 is not available. Since the system requirements of Minecraft include Java 6 and 7, it should work. Not to mention Java 6 has been marked as end of life.

If any debugging is needed to help solve this defect, please let me know.

Comment by [Mod] Kumasasa [ 24/Oct/13 ]

Reopened.

Comment by David Wales [ 27/Oct/13 ]

Mojang can fix this by rebundling the app using Oracle's app bundler, rather than Apple's depreciated app bundler.

Comment by Jonathan Hynes [ 29/Oct/13 ]

Even easier is to simply create a shortcut in your dock for the Bootstrap.jar by dragging it to the documents section (not the apps section) of the dock. It is still run with 64 bits and there haven't been any memory issues.

Comment by timeimp [ 31/Oct/13 ]

I can +1 this item and +100 to David's comment.

Comment by Jonathan Hynes [ 02/Nov/13 ]

I just successfully solved this issue using nothing but http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/packagingAppsForMac.html and the Bootstrap.jar and an installation of Ant from MacPorts.

I was able to create a .app bundle that will open the launcher when you double click the icon. Java 6 is not installed. Java 7 is used without any complaints.

If I can do this on my own, Mojang can certainly do it in far less time than I spent, which wasn't very long.

Comment by Jonathan Hynes [ 02/Nov/13 ]

Using Oracle's tutorial, this is what I ended up with. The lib contains the app bundler jar from java.net. All I had to do was install ant, and then edit a few lines in the build.xml to match minecraft's bootstrap class directory. The build-impl was just taken from the sample that Oracle provided and it was not edited in any way.

Comment by Jonathan Hynes [ 02/Nov/13 ]

And while you're at it, you might as well go through the steps to actually bundle the whole jre in with the .app (so everyone is up to date, not, you know, being forced to use old software). And why not throw it on the Mac App Store? When people see free, everyone will want to download it, and more people will be encouraged to shell out all that money since the app is already on their computers.

Comment by Jonathan Hynes [ 13/Nov/13 ]

How is this still "Unconfirmed"? Not only is it confirmed, it's also fixable in a very short period of time. Is Mojang still on vacation?

Comment by Anonymous Coward [ 09/Dec/13 ]

sarcasm: Obviously, "not being able to launch the game" is filed under "not critical" because who wouldn't expect an 8 year old to mess with the Terminal in order to play a game?! After all, this is a game by programmers, for programmers!!! Screw the kids!! F*ck the general populace!! Especially on a platform renown for its users whom love to play with over 3 decade old User Interface paradigms such as the Terminal.

Or maybe they are purposely ignoring this in order to later claim that they'll drop the platform because stats, starting from mid-2013, showed a decrease in use on the platform ( No shit!! We can't launch the game in the first place!!! )

Self-perpetuating business logic FTW!!!

Comment by [Mod] Ezekiel (ezfe) [ 09/Dec/13 ]

Anonymous, I don't understand your statement.

Apple installs Java 6 when you attempt to launch minecraft, which works fine for using minecraft.

Comment by Jonathan Hynes [ 09/Dec/13 ]

Ezekiel, I don't understand your statement.

If Mojang spent 10 minutes repackaging the Minecraft .app, this whole issue would disappear and you wouldn't be forcing masses of Mac users to install essentially deprecated software from Apple. I simply do not understand your logic here. You're deliberately ignoring a nearly effortless fix to get all Mac Minecraft players on the latest version of Java.

Just because old software works doesn't mean you should be forcing it. You are forcing version 6. Why? Because the fix would be hard to implement, take a lot of resources, or otherwise break other things? Nope, you're forcing version 6 out of laziness. If I had access to more files I could do it for you (I've already made a working .app, but it's got a few placeholders).

Also Ezekiel, as far as I could tell, if you are on OS X 10.8.x, opening the .app does NOT prompt the user to install v6; there must be some sort of bug. In 10.9 this is fixed, but there are a hell of a lot of people still on 10.8. You do know that new Macs don't come with Java installed at all, right?

Comment by [Mod] Ezekiel (ezfe) [ 10/Dec/13 ]

Thanks for telling me that 10.8 doesn't work properly. Now I understand the issue.

Comment by Kevin Breslin [ 10/Dec/13 ]

The argument that it's a non-issue because it works with Java 6 is invalid anyway. By saying that, you're saying Minecraft is legacy software. It's akin to saying, "well, it works in Windows XP - just boot into XP whenever you want to play the game," to somebody running Windows 7. It's a casual game meant to be played on a whim. I should not have to install deprecated legacy software or fire up terminal every time I want to play Minecraft.

Please just pass this on to somebody that works on the launcher and have them repackage it using Oracle's packager as described here:
https://mojang.atlassian.net/browse/MCL-1049?focusedCommentId=117117&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-117117

Comment by [Mod] Ezekiel (ezfe) [ 10/Dec/13 ]

1.6 is the current packaged version of Java for OS X. 1.7 requires the manual download.

As for 10.8 users, you're running old software. If the issue is solely with 10.8 when it comes to obtaining Java 1.6 you should update to 10.9

I am not a Mojang developer, so I cannot do anything about this. My job is to organize the website, not to fix the problems.

Comment by Kevin Breslin [ 10/Dec/13 ]

I am running OS X 10.9 so I am not running old software. Forcing me to install Java 6 when I already have Java 7 would have me running old software though.

I understand you are not a developer and I never suggested that you were. I'm just trying to let you know that it is an issue whether you think so or not.

Comment by [Mod] Ezekiel (ezfe) [ 10/Dec/13 ]

I understand it's an issue, I just don't see why it's

sarcasm: Obviously, "not being able to launch the game" is filed under "not critical" because who wouldn't expect an 8 year old to mess with the Terminal in order to play a game?! After all, this is a game by programmers, for programmers!!! Screw the kids!! F*ck the general populace!! Especially on a platform renown for its users whom love to play with over 3 decade old User Interface paradigms such as the Terminal.

a critical issue. Installing Java 1.6 on the latest release of Mac is one click download, and although it's old software, it shouldn't interfere with your Java 7 installation otherwise.

Comment by Kevin Breslin [ 10/Dec/13 ]

I never said any of that. I feel like you're treating this as "you versus the world" instead of investigating and moderating a bug report. I only speak for myself. All I'm saying is that it's an issue that needs to be fixed and that it's not "working fine" as stated by you and one other moderator.

I really want to play Minecraft while I'm working on OS X without installing another copy of the JRE or running through hoops and using Terminal. That's all.

Comment by Jonathan Hynes [ 10/Dec/13 ]

"1.6 is the current packaged version of Java for OS X"
It is not. Apple no longer bundles Java at all in OS X. They provide it for download as a failsafe, NOT a "feature"! Further, Apple has no interest in maintaining Java 6 beyond fixing critical security issues.
See Oracle's own advice about Java: http://www.java.com/en/download/faq/java_6.xml Java 7 has "many new features, performance enhancements, and bug fixes" that Java 6 does not have. "Performance enhancements" should be an automatic reason for why Java 6 should be abandoned.

Also, there's this: http://en.wikipedia.org/wiki/Java_version_history#Java_6_updates
The last 2 updates for Java 6 have been non-public and security-fix-only.

"It works" is an irrelevant argument against abandoning deprecated software. Also, even if you say that this is "not a critical issue", ok fine, it's not critical. But if a "non-critical" issue is extremely easy to fix, then why not just kill it right away?

I think it very much IS a critical issue to be requiring every Mac Minecraft player to use outdated, underperforming, less featured, more buggy, no-longer-supported-beyond-security-fixes software. Once again, Apple themselves do not believe in Java. They're trying as hard as they can to wean people off it.

Further, if you think it's such a hassle to manually download Java 7 from Oracle, there is a feature in the .app bundler that allows you to literally package all the Java assets you need within the Minecraft package. No Java downloading period!! Simple! Fun! Not old software! EVERYONE WINS!!

"as far as I could tell, if you are on OS X 10.8.x, opening the .app does NOT prompt the user to install v6; there must be some sort of bug."
I apologize. This is not an issue. I just found out I screwed up something on my system several months ago. I know how to fix it though and it's unlikely that other people would run into the same thing. In any case, that was only a side issue that I used as support. The main issue at hand still remains a "critical issue".

Niels Hakkers, if you see this, update the affected versions to 1.3.6 for the launcher and OS X 10.9 for the OS.

Comment by Niels Hakkers [ 11/Dec/13 ]

Maybe Mod could change the status to confirmed?

Comment by Kevin Breslin [ 13/Dec/13 ]

I have created a script that automates the steps described by Jonathan Hynes here:
http://kovuthehusky.com/blog/running-minecraft-on-os-x-using-java-7/

It is just a shell script that downloads Minecraft and the bundler, uses ant to bundle it, and changes the application icon to the one in the JAR. It contains no files itself so everything should be in accordance with Mojang's rules.

Comment by Jonathan Hynes [ 15/Dec/13 ]

Versions affected: Launcher version 1.3.7 (also, you could change Java 7u25 to 7u45)

Comment by Jonathan Hynes [ 19/Dec/13 ]

http://javatester.org
This site provides some more background on Java RE: Apple's version and Oracle's version.

"Oct. 17, 2013: OS X Snow Leopard (10.6) clarification: I have seen it reported twice on websites with many readers that Apple does not allow Java 6 to run applets (Java programs embedded in web pages, such as the Version page on this site). This is not true on OS X 10.6. It is true on OS X 10.7 and 10.8. I have personally verified that Java 6 Update 65 runs applets just fine on Snow Leopard."
So for most Mac users, Java 6 is entirely useless in the browser.

Minecraft for Mac is probably the only reason Java 6 ever gets used today. If Apple collected stats on which program requested a Java 6 install, you'd think they'd have contacted Mojang by now too.

Comment by Jesper the End [ 27/Dec/13 ]

isn't there a way to achieve this using the new launcher by adding arguments in the launcher?
Or perhaps selecting another executable?

Comment by Jonathan Hynes [ 27/Dec/13 ]

Both of these suggested solutions miss the point: most people will never bother with the launcher settings even if shown what/how.

In any case, the problem lies in what happens before the launcher even starts up. In the Mac .app bundle, there's a small executable that is run when you double click the app icon (JavaApplicationStub). This looks for Java 6 before the Bootstrap.jar is even launched.
Also, as far as my own testing went, selecting another executable in the launcher settings changed nothing.

The moral of the story I'm trying to drive home is that user workarounds should be considered irrelevant when there is a known fix that Mojang could implement in a matter of minutes. I'm legitimately concerned over the insane amount of excuses being made to skirt this simple fact.

Comment by [Mojang] Grum (Erik Broes) [ 31/Dec/13 ]

I've just spend a bit of time looking into the suggested replacement. There is quite some issues with it.

1) its 64bit only.
2) it takes the java install from /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
3) it doesn't work when you do not have that, nor gives a solution to that problem

Now as people claim 'it would take only minutes for Mojang to solve' – please solve these problems and we can consider using it.

We're also supposedly support osx 10.6 which makes it not guaranteed to be 64bit.

Comment by Jonathan Hynes [ 31/Dec/13 ]

I appreciate the fact that someone actually looked into it instead of simply concluding "lol totally unnecessary!"

To support 10.6/32bit, you could supply a separate download. It could be done via a separate link or just have the website handle detection and try to give them the right one.

This isn't a true solution, but have you ever looked into simply distributing the Launcher jar unpackaged? The Mac App Store is not being used, and your money comes from the accounting system and not game downloads directly.

While I have not tried it myself, I did point out that Oracle includes the option to have Java packaged in the .app bundle. Increased file size, but it'd take care of anyone Lion and above.

You "supposedly" support 10.6? Does that mean you hardly have anyone using it, or you'd be willing to drop them?

Fortunately, that location is where most people's Java 7 will be. The Bootstrap.jar successfully launches with only the plugin package installed (from java.com) and also only with the SDK installed, but the Oracle .app does indeed look for the plugin JRE only.

Any of the above I think would be preferable to the current .app bundle. My favorite solution would just be to make users aware of the situation. "Hello Mac user on 10.6, Minecraft runs optimally when you're on 10.7 and above. However, we have an old version of the app for you to use here."

I forgot that anyone on 10.6 or later can get 10.9 for free, and the list of supported Macs is fairly substantial http://support.apple.com/kb/HT5842 (about 6 years of desktops and 4 years of smaller laptops) Perhaps you could point that out to your users (even if you still provide them a download compatible with Java 6)?

(Launcher version 1.3.8 was just released. That could be added to versions affected.)

Comment by Jonathan Hynes [ 26/Jan/14 ]

Affects 1.3.9 (technically this isn't an issue with the Launcher at all, but I keep mentioning the new versions just for the sake of being up to date)

Comment by [Mojang] Grum (Erik Broes) [ 27/Jan/14 ]

We're working on something to fix this but it's going to be relatively slow ... might take a bit of time :/

Comment by Jonathan Hynes [ 27/Jan/14 ]

Cool. I appreciate it. Again, the workaround for this in the meantime is easy to use, so the (potentially long) timeline doesn't affect anyone who is actually aware of what's going on and can deal with it.

Comment by Ryan Wilkerson Medeiros [ 07/Mar/14 ]

Actually, I found a solution to the problem here presented that does not involve re-authoring the app. The description of how to do so is here:

https://gist.github.com/pudquick/7518753

And here is the resulting app:

https://mega.co.nz/#!mFMmkaxS!irH3Hrb3UanxehSAD7_tFKyRPgJ9cLraI1arnBZKexY

This is just a modified version of the original launcher, but I had to strip out the CodeSignature to do it (and I don't have any means of signing the app myself). So, as of this current moment, you'll have to bypass Gatekeeper to use the modified app.

I would sincerely appreciate it if some Mojangsta were to create an officially signed version of this.

A screenshot of proof made using my modified app is here:

https://dl.dropboxusercontent.com/u/53935943/MC_demo.jpg

Console output as additional proof:

[10:15:48 INFO]: Minecraft Launcher 1.3.10 (through bootstrap 5) started on osx...
[10:15:48 INFO]: Refreshing local version list...
[10:15:48 INFO]: Current time is Mar 7, 2014 10:15:48 AM
[10:15:48 INFO]: System.getProperty('os.name') == 'Mac OS X'
[10:15:48 INFO]: System.getProperty('os.version') == '10.9.2'
[10:15:48 INFO]: System.getProperty('os.arch') == 'x86_64'
[10:15:48 INFO]: System.getProperty('java.version') == '1.7.0_51'
[10:15:48 INFO]: System.getProperty('java.vendor') == 'Oracle Corporation'
[10:15:48 INFO]: System.getProperty('sun.arch.data.model') == '64'
[10:15:48 INFO]: Refreshing remote version list...
[10:15:49 INFO]: Refresh complete.
[10:15:49 INFO]: Loaded 2 profile(s); selected 'MCPatcher'
[10:15:49 INFO]: Refreshing auth...
[10:15:49 INFO]: Logging in with access token

EDIT: Updated DL link. The version in the previous zip still had the "JavaApplicationStub" in the MacOS folder, even though in the edited version it is unused. I deleted "JavaApplicationStub" to save precious disk space. The new app uses significantly less space than the official version, due to the significantly less data in the "LaunchGame" executable (less than a Kilobyte!).

Thanks,
~Nyriox

Comment by Jonathan Hynes [ 07/Mar/14 ]

Nyriox, Kevin Breslin already beat you to it, although I understand it's a different strategy. Again, it's not difficult at all to get a working setup of Minecraft to use Java 7.

The point is that Mojang is aware of the issue, but no matter what anyone here says, they aren't going to make it a priority. They'll lose too much money if they drop 10.6 users and the solution they came up with is going to take "a bit of time."

In the meantime, I think the easiest course of action is to simply manually run the bootstrap jar (Minecraft.app/Contents/Resources/Java/Bootstrap.jar) until Mojang releases something new. It's easy for anyone to understand ("install the JDK, then just find this one file and open it, the end"). Just tell Mac users about it, and don't worry about Mojang.

Comment by Ryan Wilkerson Medeiros [ 09/Mar/14 ]

@ Jonathan Hynes: I tried the AppBundler solution, but it just wouldn't compile for me. So instead I used the solution I linked to in my previous post (being very careful to delete the "_CodeSignature" and hidden ".Info.plist.swp" files), and then found the app launched perfectly afterward.

Screenshot of files to delete (the highlighted one is hidden by default):
https://dl.dropboxusercontent.com/u/53935943/mc-swp.jpg

And yes, I'd forgotten to mention that ".Info.plist.swp" file before, but I'd simply forgotten about it. For most users,

"rm -rf /Applications/Minecraft.app/Contents/.Info.plist.swp"

under Terminal should work to remove that issue (assuming, as with the rest of the instructions, that "Minecraft.app" is in "/Applications/").

In case anyone is wondering how the edit works, it simply uses a command-line script (instead of Apple's usual mixed binary), which directs to /usr/bin/java (alias of /System/Library/Frameworks/JavaVM.framework/Versions/A/Commands/java) for execution of the .jar, thereby using the system default version of java, instead of any specific version.

Thanks for replying,
~Nyriox

Comment by Ryan Wilkerson Medeiros [ 09/Mar/14 ]

@Jonathan Hynes: Actually, you're not quite correct on the issue. What a lot of OS X native (and open source) developers tend to do is simply create multiple different versions of an app, especially for maintenance/configuration utilities (like OnyX): one for each major OS upgrade. In this case, the simple solution is to have a "10.6" and "10.7+" version, one using Java 6 and the other Java 7, respectively.

And though I'll need to check, I think the solution I'm using right now will be compatible with both Java 6 and 7, considering that it just calls the same Terminal functions mentioned above as an executable.

EDIT: Just verified. Console output:

[17:32:04 INFO]: Refreshing local version list...
[17:32:04 INFO]: Minecraft Launcher 1.3.10 (through bootstrap 5) started on osx...
[17:32:04 INFO]: Current time is Mar 9, 2014 5:32:04 PM
[17:32:04 INFO]: System.getProperty('os.name') == 'Mac OS X'
[17:32:04 INFO]: System.getProperty('os.version') == '10.9.2'
[17:32:04 INFO]: System.getProperty('os.arch') == 'x86_64'
[17:32:04 INFO]: System.getProperty('java.version') == '1.6.0_65'
[17:32:04 INFO]: System.getProperty('java.vendor') == 'Apple Inc.'
[17:32:04 INFO]: System.getProperty('sun.arch.data.model') == '64'
[17:32:05 INFO]: Refreshing remote version list...
[17:32:05 INFO]: Refresh complete.
[17:32:05 INFO]: Loaded 2 profile(s); selected 'MCPatcher'
[17:32:05 INFO]: Refreshing auth...
[17:32:05 INFO]: Logging in with access token

And therefore the edited version I posted a DL link of above can be used by both Snow Leopard and Lion+ users, making it the de facto perfect version for all Mac users.

Ciao!
~Nyriox

Comment by Jonathan Hynes [ 09/Mar/14 ]

My comment about 10.6 was deliberately mean-spirited. Yes, the obvious solution is two separate versions, but Mojang chose to ignore that route (as of yet).

Comment by Ryan Wilkerson Medeiros [ 09/Mar/14 ]

@Jonathan Hynes: And, as I just commented, the edited version I posted will work with both 10.6 and 10.7+, so avoiding the issue with the solution I posted is fairly ridiculous (though admittedly I am having trouble figuring out where the "About" data went).

NOTE: I do not have access to a 32-bit mac anymore, so I can't verify on that issue, but considering that no mention of 32- or 64-bit is made at all in the edited files, I presume that it will work in 32-bit. Can someone test this for me?

Also, if anyone knows who at Mojang signs the Mac version of the app, could you request they sign the version I made as an "alternate" or something?

Thanks,
~Nyriox

Comment by [Mod] Ezekiel (ezfe) [ 10/Mar/14 ]

OS X 10.6 doesn't support 32 bit though never mind this

Comment by Jonathan Hynes [ 10/Mar/14 ]

This is false as far as I know. Could you clarify what you mean? Apple hadn't even finished their transition to 64-bit when 10.6 was released. It's basically half in and half out. I'm not an expert (at all), but I know 10.6 can run 32-bit software.
There's also this: http://support.apple.com/kb/HT3770
Few Macs on 10.6 even use a 64-bit kernel by default, so I'm not sure how this would at all indicate that 10.6 doesn't support 32 bit.

Comment by Ryan Wilkerson Medeiros [ 10/Mar/14 ]

@Ezekiel: Let me put it to you this way, Ezekiel.

In 2006 I received a Mac Mini from the first generation of Intel-hardware Mac minis (macmini 1,1), with a 1.66 GHz Intel Core duo (T2300). See here: http://en.wikipedia.org/wiki/Mac_Mini#Specifications_2
http://ark.intel.com/products/27233/intel-core-duo-processor-t2300-2m-cache-1_66-ghz-667-mhz-fsb

The difference between a Core duo and Core 2 duo is that one is 32-bit only, while the other supports 64-bit, respectively. The last version of OS X I ran on that computer was 10.6--I upgraded for the exclusive sake of playing Minecraft after the game stopped supporting Tiger (10.4), which came with the system.

Snow Leopard most definitely DID support 32-bit, or I wouldn't have been able to upgrade. 10.6 was a transitioning point from 32-bit to 64-bit kernel, but it was far from complete. It wasn't till Lion (10.7) that they made the kernel truly 64-bit (thus making older hardware like what I had been using not OS upgradeable after that point).

So, after about two more years, I decided to upgrade to the computer I use now (Mac Mini 5,2), and subsequently sold my old 32-bit mac mini. Which is why I'm whining about not having access to a 32-bit machine.

Thank you for your consideration.
~Nyriox

Comment by Ryan Wilkerson Medeiros [ 14/Mar/14 ]

Follow-up note: I may be able to test on a 32-bit system at school (there are about a half-dozen in one of the labs), and already have the green light to do some system reconfiguration, so I might manage it on down time. I'll post my success (or failure) if and when it happens.

UPDATE: Tested, and found to be working on a 32-bit only system at school.

[10:53:41 INFO]: Refreshing local version list...
[10:53:41 INFO]: Refreshing remote version list...
[10:53:41 INFO]: Minecraft Launcher 1.3.11 (through bootstrap 5) started on osx...
[10:53:41 INFO]: Current time is Mar 18, 2014 10:53:41 AM
[10:53:41 INFO]: System.getProperty('os.name') == 'Mac OS X'
[10:53:41 INFO]: System.getProperty('os.version') == '10.6.8'
[10:53:41 INFO]: System.getProperty('os.arch') == 'i386'
[10:53:41 INFO]: System.getProperty('java.version') == '1.6.0_51'
[10:53:41 INFO]: System.getProperty('java.vendor') == 'Apple Inc.'
[10:53:41 INFO]: System.getProperty('sun.arch.data.model') == '32'
[10:53:41 INFO]: Refresh complete.
[10:53:41 INFO]: Loaded 0 profile(s); selected '(Default)'
[10:54:04 INFO]: Logging in with username & password

https://dl.dropboxusercontent.com/u/53935943/MC32.jpg

https://dl.dropboxusercontent.com/u/53935943/MC32-1.jpg

I've also tested it on the newly released Java SE 8, and found it working with that as well.

[14:42:28 INFO]: JFX is already initialized
[14:42:31 INFO]: Refreshing local version list...
[14:42:31 INFO]: Minecraft Launcher 1.3.11 (through bootstrap 5) started on osx...
[14:42:31 INFO]: Current time is Mar 19, 2014 2:42:31 PM
[14:42:31 INFO]: System.getProperty('os.name') == 'Mac OS X'
[14:42:31 INFO]: System.getProperty('os.version') == '10.9.2'
[14:42:31 INFO]: System.getProperty('os.arch') == 'x86_64'
[14:42:31 INFO]: System.getProperty('java.version') == '1.8.0'
[14:42:31 INFO]: System.getProperty('java.vendor') == 'Oracle Corporation'
[14:42:31 INFO]: System.getProperty('sun.arch.data.model') == '64'
[14:42:32 INFO]: Refreshing remote version list...
[14:42:32 INFO]: Refresh complete.
[14:42:32 INFO]: Loaded 2 profile(s); selected 'MCPatcher'
[14:42:32 INFO]: Refreshing auth...
[14:42:32 INFO]: Logging in with access token

https://dl.dropboxusercontent.com/u/53935943/MC8J.jpg

I've therefore found that so far all OS X systems with any Java installed can run the modified app presented.

Comment by Jonathan Hynes [ 19/Mar/14 ]

And opening the Bootstrap.jar works fine with Java 8 installed.

Comment by Machiel van Dorst [ 21/Mar/14 ]

So If I get this straight: opening Minecraft.app uses java 6 but opening bootstrap.jar uses the latest it can find?

So it should be easy to rewrite it to make opening .app use the latest java right? So everyone can move of Java 6.

Comment by Jonathan Hynes [ 21/Mar/14 ]

Mojang is aware of the issue and they will deal with it as they see fit. I only point out my above comment as an interim workaround that any person with limited knowledge can execute.

Comment by Jonathan Hynes [ 21/Mar/14 ]

Relevant: https://twitter.com/Dinnerbone/statuses/446900015663837184
And: https://twitter.com/_grum/status/446954966381363200 < does that mean you ARE dropping 10.6 support??

Comment by [Mojang] Grum (Erik Broes) [ 25/Mar/14 ]

Unknown right now, we have something in the pipeline but we're going to be testing for Windows first.

To be fair; even Apple has dropped support for 10.7 right now.

Comment by Jonathan Hynes [ 25/Mar/14 ]

hmmm... that's a little ironic, but whatever.

As for dropping Snow Leopard and/or Lion support, I meant that as a good thing. Also, Java 8 needs 10.8 or higher.

Not to mention MCPE is killing it on the App Store. The only non-freemium app in sight on the highest grossing chart, and it supports iOS 5, which is quite rare at this point (5%-ish?). Point being, I doubt dropping some older systems is going to affect sales very much.

Comment by Ryan Wilkerson Medeiros [ 25/Mar/14 ]

@ Grum: What kind of something, if you don't mind me asking. Minecraft written in Java 7? Java 8?

~Nyriox

Comment by Machiel van Dorst [ 26/Mar/14 ]

It's not that Minecraft is written in Java 7 or 8 right? It's that the runtime is version 7 or 8. Anyway, if the launcher skips 7 and starts using 8 that's great right? I saw Dinnerbone tweeting about stuff they can't do while launcher is using 6.

Comment by Jonathan Hynes [ 26/Mar/14 ]

This issue has very little to do with the Java version. It's entirely the way the launcher was packaged. If you read above, you'll see that the launcher runs fine on 6, 7, and 8. This could be fixed while still (technically) supporting Java 6, but it appears that that might not be the case.

Honestly I have no idea what is "in the pipeline" but it's ignoring this ticket's specific issue in favor of dealing with something more broad. Not necessarily a bad thing, but it's definitely a delay that doesn't seem to be 100% necessary.

Comment by Ryan Wilkerson Medeiros [ 27/Mar/14 ]

@Machiel van Dorst: The issue with OS X is not whether the launcher "detects" any particular version of Java, but simply how the application was packaged. You see, for the longest time Apple had leave to create their own customized builds of Java HotSpot, later grandfathered in when Sun was bought out by Oracle. However, they could not get a renewal of whatever license they had after Oracle took over. So when Java 7 came out, Apple handed over the reins of all their tweaks and system-specific calls to Oracle for Java 7.

However, since Oracle is a third-party software developer (as far as Apple is concerned), Oracle couldn't install their version of Java in the same place that Apple had (in the OS core directory, "/System"), and had to make due with where all third-party software installs by default (the system "/Library" folder). The problem with that is, Apple's Java bundler only looks in the OS directory for the Java VM, and so resulting apps cannot detect Java VMs in the system Library. Conversely, when Oracle made their Java bundler for Mac, their version only looks in Oracle's default install location in the system Library.

Which is where people start griping. If the app is bundled using Apple's solution, it'll only be able to run using Apple's VM, but it will retain compatibility with Snow Leopard. If the app is bundled using Oracle's solution, it'll be able to run any up-to-date Oracle VM, but it would not be able to run on Snow Leopard at all. I found a solution that would retain compatibility with both versions (using a shell script in place of the native binary), but it took me some time to find it. You can see the fruits of my labor detailed above.

Thank you for reading,
~Nyriox

Comment by Ryan Wilkerson Medeiros [ 27/Mar/14 ]

@Jonathan Hynes: Actually, interestingly enough, Java 7 has better built-in support for 3D modeling and rendering (through JavaFX) than Java 6 does, which would hugely reduce the need to use third-party tools to make the game work. In fact, @Dinnerbone commented on that very thing. See here:

https://twitter.com/Dinnerbone/status/446900015663837184

~Nyriox

Comment by [Mojang] Grum (Erik Broes) [ 29/Apr/14 ]

Been playing around a bit trying to get some temporary solution working but it seems .... close to hopeless doing this properly.

/usr/libexec/java_home seems to be an awesome way to figure out the 'location of java'

I've got a game-starting java-shell-script to replace JavaApplicationStub written .... BUT java_home only seems to find JDKs

It doesn't list the 'default install location' of Oracles 1.7 JRE (/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/) and I have no idea if it ever listed the JRE location of java1.6.

So now the question, can someone who still has a system with a 1.6 JRE check if /usr/libexec/java_home -V lists this JRE? And if not, give the location of the 1.6 JRE on that system?

Maybe I can somehow make the shell script test each location and figure out the 'most recent version' and start that.

Comment by Jonathan Hynes [ 29/Apr/14 ]
xxx:~ xxx$ /usr/libexec/java_home -V
Matching Java Virtual Machines (7):
    1.8.0_05, x86_64:	"Java SE 8"	/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home
    1.8.0, x86_64:	"Java SE 8"	/Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home
    1.7.0_51, x86_64:	"Java SE 7"	/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home
    1.7.0_45, x86_64:	"Java SE 7"	/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home
    1.7.0_40, x86_64:	"Java SE 7"	/Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home
    1.6.0_65-b14-462, x86_64:	"Java SE 6"	/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
    1.6.0_65-b14-462, i386:	"Java SE 6"	/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home

I'm guessing the above is not what you're looking for. Are you wondering if the runtime environment for version 6 might be in a different location as the development kit?

On my system, the contents of /Library/Java is Extensions, JavaVirtualMachines (containing all the Oracle stuff), and a shortcut called Home that points to /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

Digging through my system, it seems that there are about a million different java binaries that are available for execution all in a million different places. It's confusing. I don't get why there has to be a xxx/Home/bin/java and a xxx/Home/jre/bin/java in most installations.

Comment by Ben Lewis [ 29/Apr/14 ]

@Grum There isn't a 1.6 JRE as Apple only ships the JDK not just the JRE.

Comment by [Mod] Ezekiel (ezfe) [ 29/Apr/14 ]

[Mojang] Grum (Erik Broes):

ezekielelin@PixelPower ~ $ /usr/libexec/java_home -V
Matching Java Virtual Machines (4):
    1.8.0_20, x86_64:	"Java SE 8"	/Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home
    1.7.0_51, x86_64:	"Java SE 7"	/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home
    1.6.0_65-b14-462, x86_64:	"Java SE 6"	/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
    1.6.0_65-b14-462, i386:	"Java SE 6"	/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

/Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home
Comment by [Mojang] Grum (Erik Broes) [ 30/Apr/14 ]

That doesn't really make it better, but I guess it's at least one place less to look in.

This would mean the search-order should be like:

/usr/libexec/java_home -v1.7+
/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
/usr/libexec/java_home -v1.6

Not really ideal but 'okish' i guess.

I'll see if i can whip up a script.

Comment by Machiel van Dorst [ 09/May/14 ]

Launcher just update for me to 1.4.2. Java 7 installed via the Applet plugin. But the script above doesn't force Java 7, still uses 6.

Comment by Deleted account [ 11/May/14 ]

Jonathan Hynes, please don't add comments like that.

Comment by Alex de la Cruz [ 11/May/14 ]

Isn't Java 8 already available? How do you update to Java 8 on Mac, and how do you make Minecraft use it?

Comment by Jonathan Hynes [ 11/May/14 ]

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
Download and install Java 8 SDK from there.
Then, to make Minecraft use 8 (or 7), right click the Minecraft.app icon, select "Show Package Contents". Then open Contents/Resources/Java/Bootstrap.jar
You can create a convenient shortcut by dragging the Bootstrap.jar to the right side of your Dock.

Soon (I hope), Mojang will release a Minecraft.app package that will open the Launcher with the latest version of Java available on your system. It's not here yet though.

Comment by Alex de la Cruz [ 11/May/14 ]

But is it normal that Java says the current version is version 7?

Comment by Jonathan Hynes [ 11/May/14 ]

Where does Java say this?
Oracle has not yet pushed version 8 to their main JRE download site at java.com.

Comment by Alex de la Cruz [ 11/May/14 ]

In the Java Control Panel. https://bugs.mojang.com/secure/attachment/63331/Screen%20Shot%202014-05-11%20at%207.28.31%20PM.png

(in that pic you can also see that the launcher uses version 6 and not version 7)

Comment by Jonathan Hynes [ 11/May/14 ]

See my above comments. The Minecraft.app icon (grass block) has a file that forces version 6 to be used. I described a workaround that is easy to execute.

Comment by Alex de la Cruz [ 11/May/14 ]

ok, but is it normal that the Java Control Panel doesn't think I need an upgrade?

Comment by Jonathan Hynes [ 11/May/14 ]

Yes, Oracle has not yet pushed version 8 to be auto-updated on top of version 7.

Comment by Alex de la Cruz [ 11/May/14 ]

Ok thanks! I heard that Version 8 can help get a bit more fps, and I could really use that.
Also, why does the Minecraft app force 1.6?

Comment by Jonathan Hynes [ 11/May/14 ]

Apple used to personally maintain Java for OS X. After version 6, only Oracle maintains it. The software that was used to bundle Minecraft in the .app package (the grass block) only had Java 6 (or Apple's system) in mind. Oracle now provides its own bundling system to acknowledge higher versions. However, Mojang doesn't want to drop support for version 6 just yet, so they stuck with the old system.

Comment by Machiel van Dorst [ 15/May/14 ]

No programmer here but just asking: If I open bootstrap.jar it's will open with Java 7, and when I remove Java 7, it'll open with 6. So it should be that hard to tell the launcher to open Bootstrap.jar with whatever is available right?

Comment by Jonathan Hynes [ 15/May/14 ]

It has to do with how the OS opens files. It opens .app bundles in a specific way, and it opens .jar files in a specific way. Here is some info on .app bundles: https://developer.apple.com/library/mac/documentation/corefoundation/conceptual/cfbundles/BundleTypes/BundleTypes.html
.app bundles always start at this file: MyApp.app/Contents/MacOS/[binaryExecutable] That binary will then execute all the startup procedures needed, which in Minecraft's case includes running the Bootstrap.jar
.jar files, opened by themselves, will be opened with this: /System/Library/CoreServices/Jar Launcher.app I do not know whether Jar Launcher.app is used if it's not a standalone execution.

I have no experience in developing OS X applications. Your idea doesn't seem too far off, but there's probably something obvious in the way of doing what you suggest.

Here is an interesting tidbit from the Apple link:

Application bundles have evolved significantly over the years but the overall goal has been the same. The bundle organization makes it easier for the application to find its resources while making it harder for users to interfere with those resources. Because the Finder treats most bundles as opaque entities, it is difficult for casual users to move or delete the resources an application might need.

You can see that the only resources that the Minecraft.app bundles contains is Bootstrap.jar, the grass block icons, and an outdated Plist. Technically, Mojang could just distribute the Bootstrap.jar with nothing else attached. However, due to the fact that Mac users have come to expect .app bundles, Mojang went that route instead.
And here you see, based on the above quote, why I was so frustrated about this issue to begin with. The bundles exist to prevent casual users from messing things up. However, in this case, there's nothing to mess up (nothing more than one .jar is involved). So the very people that the bundle was supposed to protect actually ended up hindering their gameplay by forcing Java 6 on them.

Comment by Alex de la Cruz [ 15/May/14 ]

Thats what I thought. It could just check to see if you have Java 7, and if you do, it uses it, and if you dont, it uses Java 6.

Comment by [Mod] Ezekiel (ezfe) [ 18/May/14 ]

If you guys need Java 7 or 8, just use the Jar. You can put it on the right side of the dock or double click it in finder.

Comment by Jonathan Hynes [ 21/May/14 ]

"needing" 7 or 8 is not and has not ever been the issue.

Comment by Alexander Noyle [ 23/May/14 ]

This is an issue for me also. I think it should be fixed, especially considering how insecure Java 6 is. Unknowing users would install it.

Comment by Derek Harkness [ 24/May/14 ]

This isn't a matter of needing Java 7 or 8 its an OS issue. Java 6 isn't available for OS X 10.9+ so Java 7+ is the only option. A terminal command or running the jar directly doesn't work because it by passes the code sign and gatekeeper prevents mine craft from running and it's something that is beyond the capabilities of 90% of the user base. Providing this type of "solution" is simply unacceptable today.

Comment by Jonathan Hynes [ 25/May/14 ]

I agree that none of the above is a solution, but Java 6 does run, and is offered on, 10.9

Comment by Le Grand [ 07/Jun/14 ]

OS X 10.10 dosn't support Java 6 anymore. The bug need to be fix before the lauch of Yosemite.

Comment by [Mod] Ezekiel (ezfe) [ 07/Jun/14 ]

Yosemite hasn't dropped support for Java 6, see the attachment

Comment by Jonathan Hynes [ 07/Jun/14 ]

Perhaps he means that Java 6 is no longer offered to be downloaded, so you need a previous installation?

I don't know, I'm just guessing.

Comment by Le Grand [ 07/Jun/14 ]

Yosemite have uninstalle my Java 6 installation. And the link for installe Java 6 link to a 404 page. If you have Yosemite and Java 6, have you redownload it ? Where have you find it ?

Edit : I have find the link, Java 6 still work when you reinstalle it. If some people have the same problem : http://support.apple.com/kb/dl1572
Sorry for my quick conclusion.

Comment by [Mod] Ezekiel (ezfe) [ 07/Jun/14 ]

My installer process didn't 404, the website link did work properly for me.

Comment by Derek Harkness [ 07/Jun/14 ]

It doesn't matter if 10.x allows java 6 to run or not. The point is java 6 is unsupported deprecated software by both it's author and the OS vendor. My attempts to install java 6 have resulted in 404s because Apple doesn't provide it anymore and installing Oracle java 6 on MacOS is poorly documented at best. Oracle didn't officially take over Java Mac support until Java 7.

I really don't understand why we're even arguing over whether or not the boot loader should perform the basic functions of 1) supporting a current version of java and 2) using an alternative java if installed.

Comment by John Keates [ 10/Jul/14 ]

The problem is that the launcher is generated using a Java Packager that is no longer supported. The solution is to use Oracle's ANT task go create the Mac OS X page. This is supported and will be for as long as Oracle creates Java for Mac.

http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/packagingAppsForMac.html

People running in to this same issue:

http://stackoverflow.com/questions/12102716/bundle-a-java-7-jar-for-mac
http://stackoverflow.com/questions/14806709/application-is-using-java-6-from-apple-instead-of-java-7-from-oracle-on-mac-os-x/15271448#15271448
http://stackoverflow.com/questions/17546355/java-appbundler-application-pointing-to-jre-defined-by-java-home/17546508#17546508
http://stackoverflow.com/questions/22281710/mac-os-x-javaapplicationstub-for-java-6-and-java-7

and of course a hack-ish solution that currently Just Works©: https://github.com/tofi86/universalJavaApplicationStub

The sooner this is fixed, the better.

Comment by Machiel van Dorst [ 13/Jul/14 ]

Small suggestion, and I'm not a developer so if this doesn't make sense i'm sorry. But maybe if the devs are tight on time (which they probably are with a the optimization of 1.8 still in progress), just look at other launchers like ATLauncher and FTB. When I use those, the immediately launch with Java 1.7: they'll run on my other Mac were Java 1.6 isn't installed. Just look at how they did it and implement it, and you can optimize/improve it later when there is more time.

Comment by Machiel van Dorst [ 25/Jul/14 ]

Still not working on launcher version 1.4.5

Comment by John Keates [ 25/Jul/14 ]

The title of this ticket isn't very accurate I believe, as the launcher isn't doing any detecting to begin with. The actual problem lies within JavaApplicationStub, which hard-coded looks for a specific (old) version of Apple's Java instead of the system default Java. This is not going to get fixed as long as Apple's Java application packager is used for the Bootstrap launcher.

Comment by Machiel van Dorst [ 25/Jul/14 ]

But if I go into the minecraft.app contents and simply doubleclick bootstrap.jar, it uses JRE 1.7_thelatestupdate

Comment by John Keates [ 25/Jul/14 ]

That is correct, because it's launched using Java and not the JavaApplicationStub.

Comment by [Mod] Ezekiel (ezfe) [ 25/Jul/14 ]

John, while I agree there isn't really a better alternative. The title is correct. The launcher, meaning the app you download and run, (i.e. NOT the game), is making a mistake in choosing the Java version.

Comment by Le Grand [ 25/Jul/14 ]

In theory it already use the JavaApplicationStub according to the info.plist.

Comment by Machiel van Dorst [ 25/Jul/14 ]

So they should change the plist to use java instead of the outdated JavaApplicationStub?

Comment by John Keates [ 25/Jul/14 ]

Actually, no, because you can't use OS X App packages to launch anything other than binaries. So just editing a plist isn't going to do it.

On the note of the title: well, this title suggests there is any detection going on, but that's not true, no detection whatsoever is done using JavaApplicationStub Technically, it's doing everything right: the stub is told to launch a specific jar using a specific java home path. No detection there, and that's all it does.

But back to solving this: a couple of comments up, I listed a few supported/official methods and unsupported/home-made methods to fix this. It's not very hard, and only needs a small change in the platform build process.

Comment by Machiel van Dorst [ 25/Jul/14 ]

Yes, I've got it working with the workaround. But Dinnerbone tweeted a while back that he wants to improve certain things that require Java 7 in both launcher and game I believe. Many users won't realize that the can and need to change anything. So if they want Java 7+ to be used, they need to make it that the launcher prompt a Java 7 download and uses that install as well.

Comment by Machiel van Dorst [ 25/Jul/14 ]

Or, just make minecraft NOT a .app package at all. But a Jar like the ATlauncher or FTB launchers do, which automatically use Java 7+

Comment by John Keates [ 25/Jul/14 ]

Giving end-users a JAR to deal with isn't exactly user-friendly or platform-friendly. It doesn't adhere to any UX guidelines outside of the game, which is a bad thing, and not packaging your apps in general is a pretty unprofessional way to deal with this kind of thing.

Just using the Oracle ANT workflow fixes everything, and the only thing we can do it wait for the devs. The problem is clear, the official solution is clear. The only thing needed is implementation in the build process (it's not even going to take any coding), and it'll be fine.

Comment by Jonathan Hynes [ 25/Jul/14 ]

Folks, we already have the Mojang folks fully aware of the situation and a statement of intention to fix. Latest comment here https://bugs.mojang.com/browse/MCL-1049?focusedCommentId=153669&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-153669 with several comments by Grum and others previously.

Not saying I'm impressed with the timetable (in fact, I'm kinda seriously bummed by the weak response), but further identification of the issue and/or solution is a little late at this point.

(this also means, as has been implied several months ago, that listing future versions of the launcher on this ticket is irrelevant, because in order for someone to see this fixed, they must redownload the .dmg that Mojang distributes. The self updating launcher cannot update the .app by itself.)

Comment by Machiel van Dorst [ 26/Jul/14 ]

Well in any case, let's hope for a quick fix, so people can finally leave Java 6 behind.

Also: still an issue on launcher version 1.4.7

Edit: I see, re-downloaded the Minecraft.app from minecraft.net, still the same app package that launcher with Java 6

Comment by Sonic [ 02/Aug/14 ]

Is this still in launcher version 1.5.1?

Comment by Jonathan Hynes [ 02/Aug/14 ]

This problem will NOT fix itself via launcher updates. Once Mojang fixes this, you'll have to redownload the package from minecraft.net

Comment by John Keates [ 03/Aug/14 ]

For people thinking about commenting further on this ticket:

  • Don't do it!
  • The problem is known and documented
  • Fixes are known and documented
  • It will not be fixed via an automatic update
  • It will not be fixed as long as the ticket status remains "Unresolved" (see top of this page)

Most importantly: If you think this is a really big thing and you want to make your voice heard, instead of commenting and repeating what has already been said plenty of times, VOTE! At the right side there is a link to vote for this issue. Now, I'm not sure how mojang deals with JIRA votes, but it's a pretty clear number you can increase. Make sure you are logged in and click it!

Also:

  • There is no need for "new" fixes
  • There is no need for questions about wether it's fixed or not (see the status up top)
  • There is no need for reporting the fact that it still isn't fixed while it's not fixed
Comment by Bryan Dobson [ 16/Oct/14 ]

With the release of OS X I'm not going to, for any reason, install Java 6 on my machine. Hopefully a new version can be downloaded. I'm not running scripts, doing anything via command line I'm going to click on the link or just uninstall it.

Comment by Barry Carlyon [ 21/Oct/14 ]

Just to add to the Ticket.

I was "fine".

Upgrade to Yosemite. Which seems to have removed my installed Java 1.6 (6 SE)
I do not intend to reinstall Java 1.6 just to keep Minecraft happy.

The work around in the Original Comment still works.
Or just Show Package Contents and booting the bootstrap.jar from there.

Launcher Log for reference from booting Bootstrap.jar manually

[21:31:11 INFO]: Minecraft Launcher 1.5.3 (through bootstrap 5) started on osx...
[21:31:11 INFO]: Current time is Oct 21, 2014 9:31:11 PM
[21:31:11 INFO]: System.getProperty('os.name') == 'Mac OS X'
[21:31:11 INFO]: System.getProperty('os.version') == '10.10'
[21:31:11 INFO]: System.getProperty('os.arch') == 'x86_64'
[21:31:11 INFO]: System.getProperty('java.version') == '1.7.0_71'
[21:31:11 INFO]: System.getProperty('java.vendor') == 'Oracle Corporation'
[21:31:11 INFO]: System.getProperty('sun.arch.data.model') == '64'

Comment by Christopher Bennage [ 21/Oct/14 ]

My experience is the same as Barry's.

Comment by Brodude1234 [ 22/Oct/14 ]

Yes, the issue isn't actually the bootstrap. It is the fact that the actual .app was packaged with the old Apple Java 1.6. It isn't compatible with the new 1.7 or 1.8 java made by Oracle because Apple wanted to keep a hold on things. So really, the .app has to be repackaged.

Comment by Machiel van Dorst [ 22/Oct/14 ]

So is it that hard to release a new .app package? ATlauncher, FTB, Technic, all default to Java 8 for me. This situation only causes people to download an unsafe outdated version of Java. It's an easy fix right?

Comment by William Orvis [ 22/Oct/14 ]

FTB, Technic, etc. don't release Mac apps, they only release jar files for mac. If you have a newer version of Java installed, double clicking a Jar will usually run the newer Oracle Java instead of Apple's older Java 6.

That said, I created a little app a few months ago as a workaround that will take the existing Minecraft Launcher.app, and create a new one that is Java-version agnostic (done this way to avoid redistributing the Minecraft app). Basically, it replaces the Apple Java 6 stub binary with a shell script that will try to run whatever version of Java is installed. You can get it at: https://github.com/aetherknight/build_minecraft_java_7_launcher/releases

Comment by Bryan Dobson [ 23/Oct/14 ]

Given the number of beta releases I don't really see any excuse as to why this is a problem upon release of 10.10.

Comment by Brodude1234 [ 23/Oct/14 ]

Remember, this isn't Apple's problem. This is to do with Mojang and the way Minecraft.app is packaged.

Comment by Jonathan Hynes [ 23/Oct/14 ]

Java 7 was released July 28th, 2011. This has nothing to do with having enough time or even being aware of the issue. It's simply a matter of Mojang's complacency. They must have been aware of the issue at least as soon as the snooper feature was added (July 23rd, 2012), since they'd see that almost no Macs were running Java 7. They're still selling millions of copies, so they couldn't care less whether they're forcing Java 6 on every Mac they touch. As soon as the poor schmucks can't use 6 anymore, Mojang will immediately swoop in to prevent their name from being tarnished.

Comment by Steve Wilkinson [ 29/Oct/14 ]

Just adding a more recent comment here and a 'me too'. Mojang Support seemed unaware of this issue via a Twitter conversation. I'm not sure they get that this will be EVERY Yosemite user (the percentage is growing quickly... it was over 12% within 4 days of release). And, a 'hack' isn't a good solution... Mojang needs to fix this so it works 'out of the box.'

Does Mojang have no Macs? Yosemite has been out for well over a week and was in public beta for quite some time. What am I missing here???

Comment by Joaquin Lainson [ 29/Oct/14 ]

I have taken William Orvis' source code and made it into an .app. Download it here: https://www.dropbox.com/sh/hetzor1h5tqabvm/AAC-7zJIWnO-q4UeUeRS9Qiga?dl=0
GIVING ALL CREDITS TO WILLIAM ORVIS FOR THE CODE. I ONLY MADE THE .app.

Comment by William Orvis [ 31/Oct/14 ]

Hey Joaquin, I already provide a pre-built version of my app that can be downloaded from the page I linked to above: https://github.com/aetherknight/build_minecraft_java_7_launcher/releases It is available using the green download link, instead of one of the source code download links. I just updated the description on that page to make that more clear.

Comment by Steve Wilkinson [ 03/Nov/14 ]

Hey guys... while I appreciate the effort, IMO, this is something Mojang needs to address directly. (Plus, I'd typically not advise average users to start downloading various fixes from the community - it's a security risk!). Minecraft is a PAID application which should be supported by Mojang.

An OSX Yosemite user should be able to go to site, follow some simple instructions, and start playing MC. Until this is the case, this issue isn't solved. (And, I'd sure hope that solution is to get us on a more recent Java than v6.)

Comment by Jonathan Hynes [ 03/Nov/14 ]

Wouldn't it be hilarious if Microsoft tried to "drop" support for Macs even though it's a Java game?

Comment by Joaquin Lainson [ 03/Nov/14 ]

They can't because Mojang won't allow it and it was under the terms of the contract

Comment by Mike Boerger [ 08/Nov/14 ]

Problem exists for Java 8u25 (the latest version) on Yosemite (10.10)

Comment by Bryan Dobson [ 08/Nov/14 ]

No movement on this? No official word that "Hey guys, we're on the case and this will be fixed soon!"

This was not a surprise. Nothing posted is a viable solution and geeks are not the only people who play Minecraft anymore. This should have been fixed LONG before the release of OS X 10.10 and I'm about ready to just toss in the hat and move on to another game.

Comment by Mike Boerger [ 08/Nov/14 ]

Minecraft can still be run through the terminal by entering the commands
cd /Applications
then
java -d64 -Xmx1024M -jar Minecraft.app/Contents/Resources/Java/Bootstrap.jar

Comment by Steve Wilkinson [ 19/Nov/14 ]

Hey everyone, I finally got sick of it not working and tried a 'fix' on my Yosemite laptop that was pretty easy and wrote up an article about it. I'd love input from someone who knows more about Java. I'm pretty sure my fix wouldn't help folks who do other stuff with Java and need multiple versions (like this ticket)... but it might work for the average Minecraft player who updated to Yosemite and just wants Minecraft to work.

http://www.cgwerks.com/make-minecraft-work-mac-osx-yosemite-latest-java-8/

Note: Yes, this ABSOLUTELY needs to be addressed (a long time ago!) by Mojang!

Comment by Sonic [ 12/Dec/14 ]

This will be fixed for a new launcher version according to Dinnerbone:

We hope to get the OSX one for testing very early next year, which again will remove lots of current issues OSX users have getting the game (wrong java or no java).

http://www.reddit.com/r/Minecraft/comments/2p31cu/we_need_your_help_testing_a_new_launcher/

Comment by Jonathan Hynes [ 12/Dec/14 ]

It's about damn time. And this bug tracker is given last communication priority yet again.

Comment by Steve Wilkinson [ 12/Dec/14 ]

Very good news indeed. And I'm really happy it looks like they are going fix it right. Aside from taking WAY too long and not communicating very well, kudos Mojang.

Comment by [Mod] Ezekiel (ezfe) [ 12/Dec/14 ]

Jonathan, the fix is still being tested, and the Mac version isn't technically available yet so this isn't technically fixed yet.

Comment by Jonathan Hynes [ 12/Dec/14 ]

Right. But given this news it'd be pretty sad if Mojang didn't follow through. So I was just expressing my relief, not announcing that the issue has been ultimately resolved.

Comment by Sonic [ 31/Jan/15 ]

Can anyone confirm if this is fixed as 1.6.11 is now fully released?

Comment by Jonathan Hynes [ 31/Jan/15 ]

No, they never updated the Mac download at minecraft.net

See https://twitter.com/Dinnerbone/status/561297344130719745

Comment by Sonic [ 31/Jan/15 ]

Hmm, odd. I heard that the Mac launcher version is now 1.6.11...

Comment by Jonathan Hynes [ 31/Jan/15 ]

It is. However, as has been stated from the beginning, the .app that Mojang distributes needs to be updated on their website for this to be fixed.

Comment by [Mod] CubeTheThird [ 31/Jan/15 ]

The launcher was updated to 1.6.11 for all platforms. The new mac bootstrap has not been released yet.

Comment by Steve Wilkinson [ 31/Jan/15 ]

The solution Mojang is working on sounds great, but until then if you're just wanting to get Minecraft working, I wrote up a pretty detailed article (and recently added a YouTube walkthrough) on getting it working on OS X Yosemite with Java 8. It worked on all my systems and seems to have worked for most who have tried it so far. The nice thing about this method is that you don't have to tweak any files or install any unknown components, etc.
http://www.cgwerks.com/make-minecraft-work-mac-osx-yosemite-latest-java-8/

Comment by Joaquin Lainson [ 31/Jan/15 ]

The new Macintosh bootstrap hasn't been pushed out, and the reason it will only run on Java 6 isn't just because the app was packaged in Apple's outdated packager. I found an issue when the Bootstrap.jar is executed using a Java stub, the $JAVA_HOME variables and any other class paths within the stub default to a Java 1.6 virtual machine, meaning the stub and Bootstrap.jar class paths may have to be rewritten or a script overriding the glitch injected into the path of the stub. Steve, I like your post about it on that website. Any developers that see this, try to rewrite the path the Launcher takes, making it skip Java VM verification until a script can be injected that will overwrite this.

Comment by Gage Parker [ 18/Feb/15 ]

I don't know if its just me but in Java 6 I get higher FPS about 50 to 60 FPS and on java 8 about 30 to 40 FPS.

Comment by Alex de la Cruz [ 30/Jun/15 ]

I havent been here in a while. Can someone explain whats been going on with this issue?

Comment by Jonathan Hynes [ 30/Jun/15 ]

Mojang claims they will have a new Mac launcher ready for testing "very early 2015". Nothing so far. "Soon" is our only word right now.

That's it.

Comment by [Mod] Kumasasa [ 30/Jun/15 ]

There will be some progress in the near future:
https://twitter.com/jbernhardsson/status/615845209885143040

I'm no longer working on Minecraft Pocket Editon. Right now I'm working on the OSX launcher for Minecraft PC.

Comment by Shvet Maharaj [ 10/Jul/15 ]

Is there any way to make this happen every time you log in from the Minecraft Launcher? (some mods require Java 7/8)
It would save time and be easier.
When I log in from the launcher it will say:

System.getProperty('java.version') == '1.6.0_65'

But with your method of logging in through Terminal it will say:

System.getProperty('java.version') == '1.8.0_45'

I cannot find any way at all (I am new to coding _) to figure this out.
If anyone could help I would be very grateful.

Comment by Jonathan Hynes [ 10/Jul/15 ]

You might as well uninstall/delete Java 6. Do you have the full JDK from Oracle's website?

After that, find the Minecraft.app in /Applications most likely. Right click and "Show Package Contents". Find Contents/Resources/Java/Bootstrap.jar

ONLY OPEN Bootstrap.jar until Mojang provides a fresh download from minecraft.net

If you like you can create a shortcut of Bootstrap.jar or even just drag it into the document side of the Doc.

Comment by Shvet Maharaj [ 10/Jul/15 ]

Thank you!
So I use the bootstrap.jar as the launcher now?
I know how to make the launcher's icon the bootstrap's icon so I won't go crazy because it is shown as a .jar file.
That really helped!

Comment by Jonathan Hynes [ 10/Jul/15 ]

Yes. The grass block icon of the .app package is purely a wrapper. It's literally a wrapper used to open the real launcher, the Bootstrap.jar file.

Comment by Jonathan Hynes [ 24/Aug/15 ]

https://twitter.com/Dinnerbone/status/625965518902685696
Due in a few days…

Comment by Jonathan Hynes [ 07/Sep/15 ]

Since Mojang won't post this here…
https://www.reddit.com/r/Minecraft/comments/3jc5ws/osx_users_we_need_your_help_testing_a_new_launcher/

Comment by Jonathan Hynes [ 11/Sep/15 ]

https://twitter.com/jbernhardsson/status/642344336567476224
The new OSX launcher for Minecraft is finaly done, you can download it here minecraft.net/download
9:29am - 11 Sep 15

Weep for joy.

Generated at Mon Dec 18 12:27:43 CST 2017 using JIRA 7.2.8#72010-sha1:dc33de34ffa065bef267bff4768b99ca94e2c00c.