Monday, May 30, 2011

Java Control Panel Icon "Application Not Found"

Howto: Fix the "Application not found" error in the Java Control Panel icon. These same steps may be useful for other malfunctioning Windows Control Panel icons.
 
In Windows 7, the Java Control Panel icon may be damaged / corrupted. Attempting to launch the icon results in "Explorer.exe : Application not found". Note the generic icon:


When working properly, the circled icon should look like this:



This problem appears to be an artifact from previous JRE installations and Sun's installation routines were flawed.


Re-installing JRE (the Java Runtime Environment) does not resolve the problem.


Immediate workaround:

If needed, the Java Control Panel can be launched manually, even if the control panel icon is missing or corrupt:

C:\Program Files (x86)\Java\JRE6\bin\Javacpl.exe

As a side note, when launching the javacpl in this fashion, other-mouse-click the .exe and choose "Run as Administrator".  Running as Administrator resolves a bug where changes in the Control Panel (especially Auto-update changes) do not stick. This is true even when the icon is working properly. Sun/Java is aware of this issue.


Permanent Solution:

To fix this problem, you need to know the name of the executable that drives the Java Control Panel.  Unfortunately, control panel icons often hide the name of the actual program.  Follow these steps to determine the .exe's underlying name.

If you already know the name of the executable, from above, skip to step 1.
(e.g. Program Files (x86)\Java\JRE6\bin\Javacpl.exe)



A. Determine the name of the program. 

In the Control Panel,"Other-mouse-click" (right click) the failed icon
Click "Create Shortcut".
The shortcut will be placed on the desktop, with no message or other prompts.

B. Locate the new Desktop icon.


"Other-mouse-click"
Choose "Properties"

Note: In this case, the Java Control Panel icon's name will be similar to 'Control Panel\All Control Panel Items\Java' -- which is not the actual executable's name and is not very useful. Most Control Panel icons will not display the target-path and the true name is hidden in the registry.  Continue with the remaining steps in order to find the name. 

C. Discover the actual path by clicking "Change Icon".

If the underlying executable is corrupted or missing, the displayed error message will show the actual path. For example, the Java Control Panel reports "Windows can't find the file C:\Program Files\Java\JRE6\bin\javacpl.exe".

Note the path and filename.
Use this to find the registry value in the next step.


Removing the Control Panel Icon:

Assuming you know the path to the Control Panel's icon (see steps above), use Regedit to fix the malfunctioning key. As always, exercise care when editing the registry:

1. Launch the Windows Registry Editor with a Start, Run, "Regedit.exe"

See this article for how to expose the Windows 7 Run command.

2. Position the cursor at the top of the Registry tree.

3. Type Ctrl-F (find) and search for the executable's name.  Important, when searching, use a partial path, not the full name.

For example, the actual (fully-qualified path name is :
C:\Program Files\Java\JRE6\bin\javacpl.exe).

In this case, search for this partial string:
"\bin\javacpl.exe" (no quotes)

Searching for a partial string avoids problems with 'Program Files (x86)' vs "Program Files" or 'JRE5', etc..

4. Expected Find Results:

For the Java Control Panel, expect to find this registry key GUID:

HKEY_Classes_Root\CLSID\{4299124F-F2C3-41b4-9C73-9236B2AD0E8F}

Be sure this key is within "HKEY_Classes_Root\CSLID" and not in another location in the registry. 
Confirm by opening the key; you will see javacpl.exe lurking within.

5. Delete the top-folder {4299124f...E8F} and all items within.

Do not delete the CSLID folder.
Close Regedit.

If the "MuiCache" or "Wow6432Node" key is found, you overshot the CSLID key. Confirm you started the search at the top of the tree. If you still cannot find the key, do not continue with the rest of this article.


Test the results:

Close and re-open the Windows Control Panel.

The 'generic' Java icon should be replaced with a properly-formed Java icon and the control panel icon should behave properly.




If the control panel still mis-behaves, consider re-installing the JRE or see the registry-merge below.


The Correct Registry Key:

The above steps should resolve the conflict and no further action is required.
For documentation, here is the correct key (with JRE6).   You can run this registry merge by hand, bypassing the steps above.  Note the registry-merge uses the same GUID key and it overwrites (does not delete and re-install) the key.  

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{4299124F-F2C3-41b4-9C73-9236B2AD0E8F}]
@="Java"
"System.ControlPanel.Category"="8"
"InfoTip"="@C:\\Program Files (x86)\\Java\\jre6\\bin\\javacpl.exe,-2"

[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{4299124F-F2C3-41b4-9C73-9236B2AD0E8F}\DefaultIcon]
@="C:\\Program Files (x86)\\Java\\jre6\\bin\\javacpl.exe"

[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{4299124F-F2C3-41b4-9C73-9236B2AD0E8F}\Shell]

[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{4299124F-F2C3-41b4-9C73-9236B2AD0E8F}\Shell\Open]

[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{4299124F-F2C3-41b4-9C73-9236B2AD0E8F}\Shell\Open\Command]
@="C:\\Program Files (x86)\\Java\\jre6\\bin\\javacpl.exe"



Re-Installing Java:
This article is not recommending a re-install of Java to fix this problem (the author found it did not help), but from reader comments below, many have attempted to re-install.  Be aware if you do, be sure to install the 32-bit version of Java -- even if you have a 64-bit operating system.

Reader Ronald Arnold, Germany, reported installing the 64-bit version of JRE, followed by the 32-bit version caused this problem.  I am sure he is correct, but in my case, I have never installed the 64-bit JRE -- I suspect there are multiple causes for this control-panel icon problem.


Other Control Panel Icons:

If you are searching for other non-Java Control Panel icon problems, this registry key may be of interest:

HKLM\Software\Microsoft\Windows\CurrentVersion\Control Panel\CPLs.

Be aware the Java Control Panel does not live in this location. Only a few system control panels live here but I could imagine other vendors sticking something in here.

Your unregistered comments on this article are welcome.

Related articles:
Streamline Windows 7 Start Menus
Turn off UAC Nags on Start Menu Items
Recommended Win7 Explorer Changes

Related Links:
I have not used this utility, but in the event of a complete java failure, this link may be of interest:  Completely uninstall all Java using a beta product called JavaRA:


Keywords:
Java control panel, java.cpl, javacpl.exe, JRE

24 comments:

  1. Thanks, great post! I had a problem with the paths in the registry keys because I moved my installation. Thanks to this I was able to manually edit the paths in the registry and get things to normal again!

    ReplyDelete
  2. The author writes to Anna:

    It couldn't hurt to merge the registry file, listed above. Do the following.

    1. Launch Notepad.exe.
    2. From this blog, copy the Registry Key into the Notepad document.
    3. If needed, edit the REG file, various lines, changing the path to where you installed java. The file above has the default path, so only change if you installed in an unusual directory.
    4. Save-AS "C:\Windows\Java.reg" (use quotes)
    5. Start, RUN "C:\Windows\Java.reg"

    See this article if you can't find the Start RUN command: http://keyliner.blogspot.com/2009/11/windows-7-exposing-run-command.html

    6. Reboot to confirm the changes.

    ReplyDelete
  3. Thank you for the valuable post! I have the same problem, but the solution didn't work after the step "5. Delete the top-folder {4299124f...E8F} and all items within." No Java icon re-appear in the control panel.
    Could you explain more in detail why deleting the key would make the control panel icon behave properly?
    Or, would it better to change the values (paths) inside this key?

    ReplyDelete
    Replies
    1. Annon: Step 5
      I don't have an answer for your question. The technique listed above has worked for me on several machines. After doing the steps, please re-install the Java client and reply back with your findings. Thanks

      Delete
  4. I had to uninstall Java 1.7.5 after deleting the registry. A re-install fixed it. Thanks for the great how-to!

    ReplyDelete
  5. Thank you for the great post, but unfortunately, it didn't work for me. I have the same problem as the Anon 4 posts above me (posted on May 7, 2012). After step 5, no Java icon is there on the Control Panel, it just disappears. I reinstalled Java 6.33 in C:\Program Files\Java\jre6 and the same problem appeared again: The Java icon reappeared but with the same problem as before; when clicked, it says "Explorer.exe application not found." Please get back to me, but in the meantime, I will try installing Java in Program Files (86x) or installing Java 7.5 in both... Thanks!

    ReplyDelete
  6. Hey Tim, I'm the Anon poster that just posted about 5 minutes ago, and by a stroke of luck, I got it to work, and hopefully for the other anons out there with the same problem! So the trick is to install the 32 bit version, at least for me, it worked. I have a 64 bit operating system, but somehow, Oracle detected that I had a 32 bit, so I tried that instead, and it fixed the control panel icon! Before, all my Java apps broke too, but now they're all working again, THANK YOU SO MUCH!

    ReplyDelete
  7. Great post, it worked for me!

    ReplyDelete
  8. Great post! Worked like a charm! Thanks!!

    ReplyDelete
  9. After a couple frustrating hours, finally found this article. Works like a charm, thank you!

    ReplyDelete
  10. Great post, it worked like a charm!

    ReplyDelete
  11. THANKS YOU,this worked perfectly for me, was going nuts, re-installed several times and couldnt figure out what else to do. Cheers for sharing.

    ReplyDelete
  12. OMG--you saved my DAY!!

    ReplyDelete
  13. Thanks. I have a windows 7 64-bit os and Java 1.6 32 bit and I had the same problem with the post and it has been solved as explained in the post.

    ReplyDelete
  14. Thank you very much! Expertly and clearly written and solved my problem.

    ReplyDelete
  15. Thank you very much. Helped me resolve the issue.

    ReplyDelete
  16. Thanks buckets! With Windows 7 64-bit, a try with Nightly (with Java 64-bit) left me with this problem. Thanks to your very clear post, I got rid of it.

    ReplyDelete
  17. When I searched the registry tree the path was not found. When I checked myself I found it in a jarfile but the shell and open folders had no set values under the data. The command folder had the path I got from the shortcut. What can I do next?

    ReplyDelete
  18. Extremely frustrating issue. Thank you so much for a simple and effective solution!

    ReplyDelete
  19. OMG ! ... this is so easy to fix:(problem : Java Control Panel Icon "Application Not Found")

    - open registry and search for "\bin\javacpl.exe"
    - right click, modify and rename the address to the right address (you just need to rename jr6 to jr7 assuming you have Java7)
    you will find 2 entries to rename

    That's it !

    ReplyDelete
  20. Hi All,

    I had the same issue of this not work at first. It turns out that my key was in HKEY_Classes_Root\Wow6432Node\CLSID\{4299124F-F2C3-41b4-9C73-9236B2AD0E8F}

    If you just click on the line ({4299124F-F2C3-41b4-9C73-9236B2AD0E8F}

    Click export and save this as a file to your desktop to make it easier to find. Next Right click the saved registry file and click edit. When the not pad appears, highlight all of the text in notepad and delete it. Paste what the above contents labled as the above registry key:

    Windows Registry Editor Version 5.00

    [HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{4299124F-F2C3-41b4-9C73-9236B2AD0E8F}]
    @="Java"
    "System.ControlPanel.Category"="8"
    "InfoTip"="@C:\\Program Files (x86)\\Java\\jre6\\bin\\javacpl.exe,-2"

    [HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{4299124F-F2C3-41b4-9C73-9236B2AD0E8F}\DefaultIcon]
    @="C:\\Program Files (x86)\\Java\\jre6\\bin\\javacpl.exe"

    [HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{4299124F-F2C3-41b4-9C73-9236B2AD0E8F}\Shell]

    [HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{4299124F-F2C3-41b4-9C73-9236B2AD0E8F}\Shell\Open]

    [HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{4299124F-F2C3-41b4-9C73-9236B2AD0E8F}\Shell\Open\Command]
    @="C:\\Program Files (x86)\\Java\\jre6\\bin\\javacpl.exe"

    and save the file yet again. Go to Run and regedit and click import. You will be importing the file you saved and edited that is located on your desktop. Close the registry and now open the control panel and the icon should be there :-)The person who wrote these instuctions is great and I really appreciate the help, but I'm a little slower so it took me hours to get it to work, but if it werent for them. I'd be completely stuck. I hope this works for you as it has worked for me.

    ReplyDelete
  21. Spot.
    On.
    PERFECT.

    Thank you so much!!!

    ReplyDelete
  22. Thank you very very much! This was great help for me!

    Br
    Jukka from Finland

    ReplyDelete

You are invited to comment on this article. Comments are moderated and are published upon review. If spam, it will not see the light of day; do not waste your time or mine.