When viewing an Applet, why does Safari for Windows display "Java is Unavailable or Not Installed" when Java is installed and available?

JoshDM picture JoshDM · Jun 28, 2012 · Viewed 25.7k times · Source

When using Safari on Windows 7 to load any page containing any Java applet, the following alert appears:

"Java is Unavailable or Not Installed. Do you want to go to a page where you can download java?"

This message is incorrect. These are developer machines with one or more instances of the Java JRE / JDK installed, including 1.7.x. Many alerts are accompanied by messages referencing a non-existent file path, similar to:

"The Java Runtime Environment cannot be loaded from <C:\PROGRA~2\Oracle\JAVAFX~1.1RU\bin\server\jvm.dll>”

The following attempts to repair the situation have all failed:

  • Uninstalling and re-installing various Java versions.
  • Updating to the latest Java version.
  • Changing security settings in Safari.
  • Going to http://www.java.com/en/download/help/testvm.xml detects an obtuse version that is not even installed (Java 2 Runtime Environment, SE v1.4.2_19 ?!?!)

Searching the internet reveals many users with similar problems, but no answers.

How can this be resolved?

Answer

JoshDM picture JoshDM · Jun 28, 2012

While many complaints about this problem exist online, a Google search against "Safari Windows jvm.dll JAVAFX" finds this obscure thread on the Apple Forums.

Summarized, the problem is when Safari checks the Windows Registry for a particular value, it uses the first value it finds instead of the correct value.

Steps to repair the issue:

  1. Close all Safari windows.
  2. Run regedit.exe
  3. Backup your Windows registry (right-click the root Computer and select export).
  4. Go to
    • 32-bit Windows: HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Plug-in\
    • 64-bit Windows: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft\Java Plug-in\
  5. Examine each entry; there will probably be more than one.
    • Some entries reference proper JREs, while some may reference JavaFX or something else.
    • The JavaFX one may have been installed by Java 7.
    • It is likely Safari is selecting the bottom-most sorted entry; check whether the file path reference for that entry is invalid or nonexistent.
  6. select the bad entry under ..\Java Plug-in\, cross your fingers, and delete it.
  7. close regedit
  8. re-open Safari and browse to a page with an applet. Give it a minute.
  9. At this point, you should be successful. If it continues to fail, check other registry entries under the ..\Java Plug-in\ or parent subfolder ..\JavaSoft\ for invalid file paths. If you recently upgraded, a prior installation may have been invalidated, but the registry entries might not have been removed, and might have to be excised manually.

NOTE: Regarding step 4, your data may be under a different location; check the comments below for the experiences of other users who have resolved this issue in a similar fashion. Please post any alternate Windows Registry paths below as a comment.

Appreciation goes to user Olivier2011 (Olivier Lefevre) of the Apple Support Community (see first link in this answer) for following up his own question with his solution. Oliver's historical record of the incident from MarkMail.