Looks like no one’s replied in a while. To start the conversation again, simply ask a new question.

Update Ruined How my Java Applications Worked

Hey i just want to know why this pops up ever single time i want to open my Java running Applications


Click “More Info…” to visit the legacy Java SE 6 download website.


To open “ATLauncher” you need to install the legacy Java SE 6 runtime.


In this case it was for an application called ATLauncher.

Is there just not a java program on this computer or what.

iMac, iOS 9.1

Posted on Nov 25, 2015 6:57 AM

Reply
12 replies

Nov 25, 2015 12:44 PM in response to Gkrier

There are two different Java distributions for end users: one from Apple, and one from Oracle. They don't overlap in function. Neither one is installed by default.

The Apple Java runtime (version 6) is needed to run bare jar files and older standalone Java applications. Newer Java applications have a runtime built in and don't use Apple's.

The Oracle Java runtime (version 8 or later) is a web plugin only. It's used to run web applets and WebStart applications. It cannot run standalone applications independent of a web browser. To determine whether it's installed and up to date, look for a preference pane named "Java" in System Preferences. If it's present, open it. It will launch the "Java Control Panel." Select the Update tab.

Nov 25, 2015 12:58 PM in response to Gkrier

Just a minor correction. Java 8 is not only for web applets or WebStart apps. I have several standalone Java apps that run perfectly fine under Java 8. I don't have Java 6 installed. If I put the Java 8 plug-in in the trash, I get this message when I launch the ROES software for a vendor:


User uploaded file


Put the Java 8 plug-in back, and it runs as expected:


User uploaded file

Nov 25, 2015 7:03 PM in response to Gkrier

Hello Gkrier,

Sorry for the confusion. I'll try to explain things. First I'll start with your original question and then I'll clear up some misinformation.


No. Java is not installed on OS X. You must download and install a Java Runtime Environment (JRE). If all you want to do is run this specific "ATLauncher.app", then double-click the app, follow the prompts and install the Legacy Java 6. You're done.


Let's say you want to know more. You have basically two options, both with pros and cons.

Option 1) Follow the prompts and download Legacy Java 6 (Java for OS X 2015-001).

Pros: This version of Java is required when you want to double-click on a pre-packaged Java application like the the "ATLauncher.app" that you downloaded.

Cons: This is an ancient version of Java first released in 2006. Obviously this will run any of those special pre-packaged Java Mac applications. It may not run any newer Java applications. You do NOT want to let this version of Java anywhere near a web browser. Apple seems to have completely removed this any web capabilities from this version of Java.


Option 2) Download the current version of Java from Oracle (http://www.java.com/en/).

Pros: This is the current version of Java and will run any Java application. You would not be restricted to just those pre-packaged Java Mac applications. You could download and run any Java program. This is a slightly safer version of Java for use in a web browser.

Cons: The Oracle Java installer includes adware! Wait, there's more! Java is a big security hole so it needs to be frequently updated. The Oracle Java updater includes adware! If you want the Oracle version of Java, make sure to turn off the adware in the installer. Then, after it is installed, go to System Preferences > Java > Java Control Panel > Advanced tab > scroll to the bottom and check "suppress sponsor offers".


Option 3) Install both versions of Java. While still possible, you are pretty much in command-line territory from now on. Java is a royal pain and Apple's Java doesn't work well with Oracle's Java.


Now, to clear up some misconceptions...

The only current, official version of Java is the Oracle version. To get around Apple's ever-changing OS and System Integrity Protection in El Capitan, Oracle's Java looks like it is just for web stuff, but it isn't. It is a complete version of Java, albeit with some funky directory paths. Technically speaking, Apple's old version of Java is a stripped-down, hacked-up version.


Java applications used to come bundled with runtimes, but I haven't seen that in almost 20 years. Of course, I don't use Java apps on the desktop. I use (and sometimes write) Java apps for servers, but that is a bit different.


Kurt is correct. Either JRE can run applications. The big difference is that those pre-packaged, "Mac-like" apps require Apple's old version of Java if you want to be able to double-click them to launch. But Apple strongly recommends against installing this old version. Apple doesn't want to deal with Java anymore. That's why Apple says, and I quote, "Download Java for OS X directly from Oracle." (Get Java for your Mac - Apple Support). You can still run the apps with Oracle's Java. Just select something like "ATLauncher.app" in the Finder, right/Command click and choose "Show Package Contents". Go into Contents > Resources > Java and double-click "ATLauncher.jar". If you want, you can copy "ATLauncher.jar" to some other directory and change the icon to match the .app version. You could do this, or something similar, with any of these pre-packaged "Mac-like" Java apps.


Java is a strange beast. It is deprecated and virtually disappearing from the desktop. But it is still going strong on servers. Just about everything Apple does these days runs on Java.

Nov 25, 2015 8:15 PM in response to Linc Davis

Since you are being plied with false information, as usual on this site, I'll expand on a couple of points.


First, the Oracle JRE is a web plugin. If you download a JNLP (Web Start) file in a browser and open it, the Java app will be cached locally as an application, which will run under the Oracle runtime, as documented here:


http://docs.oracle.com/javase/6/docs/technotes/guides/javaws/


A standalone, legacy Java application or bare JAR file will not run under the Oracle runtime; it will run under the legacy Apple-distributed runtime, as documented in the link I posted in my first comment.


Newer self-contained Java applications for OS X are built using the Oracle Java Development Kit (JDK), which is a product distinct from the JRE, and contain an embedded version of the JRE, as documented here:


https://docs.oracle.com/javase/8/docs/technotes/guides/deploy/self-contained-pac kaging.html#BCGIBBCI

Nov 25, 2015 9:15 PM in response to Linc Davis

Sorry you are caught in the middle of this, but Mr. Davic is having a difficult time accepting that no one in this world is always right.


Legacy Java 6 apps can be run under Mavericks, Yosemite and El Capitan without having Java 6 installed at all. Only Java 8 from Oracle. People have been using the following trick to run legacy Java 6 apps since Mavericks. Which includes the Adobe CS6 apps, one I'm going to show you next, and others.


Here's one you can download to prove it to yourself if you wish. Download the Mac version of ColorPort 2.0.5 from X-Rite. If you don't already have Java 8 installed, do that next. Install ColorPort and try to run it. You'll see a very unhelpful error message. It may stay on the screen, or it may disappear before you have even a moment to read it. But regardless, the app won't run as it requires Java 6.


Instead of installing Java 6, run these two commands in Terminal:


sudo mkdir -p /System/Library/Java/JavaVirtualMachines/1.6.0.jdk

sudo mkdir -p /System/Library/Java/Support/Deploy.bundle


Since the commands create blank files in the System folder, they may not work due to El Capitan's System Integrity Protection. I can't remember if I had to turn it off or not in order for it to work. If so, turn SIP off, run the Terminal commands, and then turn SIP back on. It only needs to be off long enough to run these two commands.


If you can create the two placeholder entries without disabling SIP, restart the Mac after creating them. You'll now have two zero byte files on the drive. They are nothing. Just names. If you run the Terminal command to check for Java, it will still tell you that no Java 6 or older environment exists. You'll get this message after running the Terminal command; java - version


Unable to locate a Java Runtime to invoke.


This is the trick that allows legacy Java 6 apps, such as for the Adobe CS6 apps, to run without having Java 6 installed. They instead run under Java 8. The two placeholder files you create fool those apps into believing Java 6 has been installed. Despite Java 6 not existing at all, ColorPort now runs under Java 8.


User uploaded file

Nov 26, 2015 5:14 AM in response to Kurt Lang

With typical British understatement I will say that Java on OS X is a mess.


First some history, Java was original developed by Sun Microsystems, Apple originally took on the responsibility of providing an OS X version of Java and kept doing this up to and including Java 1.6. As I recall when OS X Lion i.e. 10.7 was released Apple indicated that they were going to stop providing Java themselves or at least to stop updating it themselves and that thereafter it was going to be Oracle's responsibility. (By that time Oracle had bought Sun Microsystems and therefore 'inherited' Java.)


It appears that this mess is partly Apple's fault, partly Oracle's fault and partly third-party developers fault. With regards to third-party developers they are at fault for using Java in situations that do not justify it for example Adobe Creative Suite and for needing the wrong version in some cases e.g. an ancient 32-bit version. With regards to Apple they are at fault because it seems despite the fact that they have for years described their own Java installer as being an installer of a Java JRE it would actually appear to install a Java JDK or worse some mutant half JRE half JDK. Oracle appear to be at fault because their JRE installer does not install a JRE usable via Terminal, whereas if you install Oracle's JDK it does result in also a JRE that works in Terminal.


This is what I get in Terminal with Apple's JRE 1.6 installed and Oracle's JRE 1.8 installed


java -version

java version "1.6.0_65"

Java(TM) SE Runtime Environment (build 1.6.0_65-b14-468-11M4828a)

Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-468, mixed mode)


This is what I get in Terminal with Apple's JRE 1.6 installed and Oracle's JDK 1.8 installed


java -version

java version "1.8.0_25"

Java(TM) SE Runtime Environment (build 1.8.0_25-b17)

Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)


Web browsers on the Mac will work with just Oracle's JRE installed, many if not most Java applications e.g. Adobe Creative Suite, various installers, etc. will not work with just Oracle's JRE installed and need either Apple's (so called) JRE installed or Oracle's JDK installed.


Note: Linc Davis is right newer Java applications can have the JRE built-in to them, PaperCut for example is a printer management solution which does have the JRE built-in and works fine on a Mac with no additional Java installation, it even worked straight away under El Capitan.


Despite way back when Lion was released as I mentioned Apple seeming to make it clear they were washing their hands regarding Java, Apple have so far grudgingly continued to provide a Java 1.6 installer even very grudgingly for El Capitan. However they did more recently say that absolutely, positively, they will not provide a version for the version of OS X that will come out in 2016 i.e. the version after El Capitan.

We could therefore see next year many applications apparently die under the next version of OS X.

Apple have been telling people for years to install Oracle's JRE, logically to just run a Java app one would only install a JRE because all you want to do is run it not develop one and logically a JDK (Java Development Kit) is for developing Java apps which ordinary users have no need for. As a result Apple and Oracle make it such that people will typically only install Oracle's JRE which does not work for many Java applications. I am fairly certain that in the past the dialog that pops up if you try running a Java app that determines there is not the right Java installed used to via the 'More' button take you to the Oracle JRE download page but it does now take you to the Oracle JDK download page so that at least is now taking you in the right direction.

I feel the ideal solution would be if Oracle's JRE installer did itself set things up so it provided a Terminal.app compatible JRE environment which is what Apple's JRE 1.6 installer does and what I believe older Java applications like Adobe Creative Suite need. This may mean that contrary to Apple's previous suggestions and good old common sense users need the full JDK installer and not the JRE installer.

On a related but slightly different topic Java and especially Java in a web-browser is a notorious security risk. It means when you visit a dodgy website you could be infected by malicious Java code and this is why Apple frequently disable older Java versions and why Oracle so often have to update it. Sadly most if not all SSL VPN clients require Java to be installed which as VPNs are used to improve security is clearly a contradiction in terms.

Nov 26, 2015 7:53 AM in response to Linc Davis

Linc Davis wrote:


Since you are being plied with false information, as usual on this site, I'll expand on a couple of points.

Hello again Linc,

Years ago, you acknowledged that you weren't a programmer. You can't become one by reading a couple of vendor docs. John Lockwood is right. Java on OS X, or even just Java on any Desktop OS, is a mess. But if you wanted to learn about programming, Java is an excellent place to start. Just avoid all of the confusion over web browsers.


A standalone, legacy Java application or bare JAR file will not run under the Oracle runtime; it will run under the legacy Apple-distributed runtime, as documented in the link I posted in my first comment.

Sorry, but this is completely wrong. Only those pre-packaged, Mac-style Java apps require the legacy runtime, and only then if you want to double-click the .app file. Any other Java app or bare JAR file will run just fine on Oracle. You can easily test this yourself. Run a virtual machine and install the Oracle JRE. Then download ATLauncher (https://www.atlauncher.com/downloads). It obviously won't do much if you aren't into MineCraft, but you can see it run. Select the ATLauncher.app, show Package Contents, drill down into the Resources folder. Double click the JAR file. Presto! Then try to double-click the ATLauncher.app. That's funny. It won't launch. Didn't you just install a JRE? OK. Go ahead and install the Apple legacy JRE. Now you can double-click on ATLauncher.app to run it. You can also still double-click on the JAR file to launch that. But which JRE will that use? That I don't know. At this point, your Java environment is all messed up. The only way to manage it now is from the command line. From the command line, you could set your JAVA_HOME to either the Apple JRE or the Oracle JRE and run either version of Java. The Oracle JRE will have a funky path, but it doesn't really matter.


Newer self-contained Java applications for OS X are built using the Oracle Java Development Kit (JDK), which is a product distinct from the JRE, and contain an embedded version of the JRE, as documented here:


https://docs.oracle.com/javase/8/docs/technotes/guides/deploy/self-contained-pac kaging.html#BCGIBBCI

Technically this is correct, but this is a fundamental misunderstanding of the Java architecture.


First of all, Java applications have always had the potential to include a bundled JRE. Early on, this was the only way it would because early versions of Java were very flaky and, in those days, a Java app could only be guaranteed to run under the JDK it was development with. Now, you can still do that, and Oracle would like to resurrect the practice for Mac apps, but that ain't never gonna happen and Oracle knows that. That's why the installer includes adware. This is a long story so I won't bother to go into it.


(PS: Kudos to Oracle for recommending the wonderful Inno Setup to build stand-alone EXE files for Windows. I always wished the Mac would have a decent installer architecture like Windows. After using Inno Setup, a great open-source "utility" written by an individual developer, it was a huge downer to go back to Apple's Package Maker.)


The key point I want to explain is the difference between the JDK and the JRE. The JRE is the runtime, the virtual machine. The JDK is just the development kit, like Xcode. For Objective-C apps on the Mac, the runtime comes bundled with the operating system. So you can download Xcode, build an app, and it will run on some other Mac because you know the runtime is always going to be there - it is part of the OS. But if you use the JDK and build a Java app, then your users will have to download a JRE from somewhere. You can bundle a JRE, but then your little Java app is over 67 MB in size. That was a big deal in 1997. Both the JDK and Xcode include runtimes, but those are primarily for linking the results of your development work. Even on your development machine, you may, and probably should, run the app under a different JRE.


You can see how all this works with Swift 2. Swift 2 is in much the same state that Java was in circa 1997. Macs aren't guaranteed to have a Swift 2 runtime installed. So, when you build a Swift app, Xcode will automatically bundle a Swift 2 runtime in your app, just like the JDK can (optionally) do. Otherwise, the user experience would be just like Windows where if you wanted to install a modern Mac app, you would have to download and install runtimes from Apple. Apple went that route with Java, but not with Swift. This means that each Swift 2 app you have installed has its own Swift runtime, but that's life and that's why you need a lot of free disk space these days. That requirement will be removed soon I'm sure.


If you want to learn more about programming, but you are going to have to get your hands dirty. Documentation alone can be misleading and quite unreliable.

Nov 26, 2015 8:12 AM in response to John Lockwood

I will say that Java on OS X is a mess.

Now there's an understatement! 🙂 It's been a security bug ridden mess, and a general mess for as long as I can remember. It's essentially the ancient DOS Basic interpreter for GUIs.


Lots of good information and history, there. Much of it I already knew, but thanks!


In the case of the above test, I don't use, and have never installed the JDK. All standalone Java apps I use under Yosemite and El Capitan run under the standard JRE version of Java 8. Java 6 is not installed on this Mac. Just the two false stub files to make older Java apps happy in believing the version check passed.

Update Ruined How my Java Applications Worked

Welcome to Apple Support Community
A forum where Apple customers help each other with their products. Get started with your Apple ID.