Last night a new Java 7 update has been released: 7u65. I have a web application where a service applet is loaded, and after the update, my tests on different PCs did not show issues nor wrong behaviors.
Later, I started to receive issue reports related to my product's Java service applet. All the reports came from users who updated Java JRE to 7u65 (from 7u60):
The applet was not loading at all. I display a "Loading" screen when the application starts, and this was not being displayed. Also, all the services provided by my Java applet were unavailable.
After changing the Java Control Panel's advanced configuration to always show the console (in one of the PCs where this issue happened), I discovered that the applet was not even launching the Java console.
Using the same station where the error happens, trying to access java.com to check the current java version, the Java applet is loaded and the console is displayed without errors.
All tests were performed after clearing Browser and Java Cache, and even after removing the installed certificates (mine is a valid signed applet).
I checked the Java 7u65 release notes and none of the mentioned changes seem to affect my applet. Also, there were no issues while using Java 7u60.
I don't have any clues about what is going on, perhaps because the java update was released hours ago. As the Java console can not be displayed even if I configure Java Control Panel to do so, I can not tell if there is any exception. I can not reproduce the issue in my PCs (Windows 8, nor Windows 7, both at 64 bits), but the issue has been reported on Windows 7 PCs.
One of my friends told me that this seems to be happening on machines where Java 7u60 was in use, and then it was updated to Java 7u65 with no deinstallations. Also, this tends to happen in older OS (ie: WinXP) which is more natural.
I write this question because it seems very odd that some PCs have this issue, and some others not. I'd like to know if any one else is having this issue, knows what could be the reason, or has discovered/applied any solution to it. Also, I'd like to share the solution if I ever happen to find it.
Thanks.
Edit:
External references, related to the same Java version (JRE).
Internet Explorer crashing after updated Java to 7u65: An issue with the same JRE version, this time with Internet Explorer and Firefox.
RS Loading Issue (Java) ~ READ: An issue related to the same JRE version update, this time, in a Java Game.
The future of Java on Windows XP:
This end of support announcement has been misread as "Java no longer works on Windows XP" or "Oracle will stop Java updates from being applied on Windows XP". These statements are not correct.
I just ran into this exact problem with one of my applets.
It looks like some changes were made to the handling of the 'java-vm-args' and 'java_arguments' params in 7u65.
'java_arguments' seems to no longer work, when it is specified, my applet will silently fail without even launching the JVM.
I have had the same problem.
I delete C:\Users\${USER}\AppData\LocalLow\Sun
When i reloaded the web page containg the appelets. The JRE recreated this folder again.
And evrything was OK.
There is no big difference between the folders contents .. but it worked.
It seems to be a bug in the jRE
It seems that oracle has changed something with processing default plugin java arguments,
that caused problem in new java.
When upgrading from older version of java it is possible that value for
deployment.javaws.jre.0.args (or deployment.javaws.jre.1.args)
is not defined in
C:\Users\${USER}\AppData\LocalLow\Sun\Java\Deployment\deployment.properties
If you add
deployment.javaws.jre.0.args=
to deployment.properties, applet will work.
It can be done through Java Control panel also:
Java -> View -> double click on Runtime Parameters cell for java 7u65 to enter edit mode -> OK -> Apply
java-jvm-args solution didn't work for me, applet was launched but arguments were ignored.
Oracle has released an update that resolves this specific issue via version 7u67
http://www.oracle.com/technetwork/java/javase/7u67-relnotes-2251330.html
As Miloš Ratković wrote, if customer hasn't string in deployment.properties
deployment.javaws.jre.X.args=
where x is number of java installation for version 7_65 (number of java installation for particular version is X in string deployment.javaws.jre.X.product=1.7.0_65), Java applet failed to start.
For my case I have a solution - don't pass any arguments for my applet.
In my javascript code for starting applet I'm just comment
<param name="java_arguments" value="some arguments">
string
Also, if you delete the directory C:\Users\${USER}\AppData\LocalLow\Sun, during next startup of java applet java write new deployment.properties with correct java args string
Uninstall java 7 update 65 and reinstall java 7 update 55 Download the windows x86 offline version
Go to Java control panel and uncheck: automatic update
When the next window comes up, click on "do not check"
then click on "apply" and "ok"
close all browsers and reopen them to continue your work
This has worked for me every time so far and I have been doing this for the last two weeks now with "0" issues.
Sorry, this is not the answer. I was trying to verify the feedback about JRE 7u65 not able to accept "java_arguments"; however, I setup a Windows x32 and installed (new) 7u65 without upgrade from any older version. With the "java_arguments", the machine is able to load the applet in IE8 and FF30, when few specific PCs do fail the same applet with upgraded u65.
This question already has answers here:
Using HTML5/Canvas/JavaScript to take in-browser screenshots
(7 answers)
Closed 2 years ago.
I am doing screen recording application in servlet. But its working correctly in localhost with tomcat sever7x. But when I hosted in web server it shows error like this
java.awt.AWTException: headless environment at java.awt.Robot.(Robot.java:94)
Can any one help me? Thanks.
this is not clear to me,
are you trying to capture the server's screen?
as you are using servlet?!
i think its related to display issues on the server
because most servers does not have GUI (Gnome or desktop) as windows for example
so thats your problem
also have a look at this post
Headless environment error in java.awt.Robot class with MAC OS
last post by Ginger Head
This exception is happening because you're using some API that requires environment to support graphics (if saying that simplified). In order to resolve issue you have to either get rid of using classes that requires graphics support, or run it at not headless environment. Try taking a look at line 94 of Robot.java to find out what API complains on headless environment.
You may find these links useful:
What does "headless" mean?
http://www.oracle.com/technetwork/articles/javase/headless-136834.html
I got this problem while running Selenium test(configured to use remote server) on Jenkins. Solution for mwe was to start Xvfb Plugin before the job: https://wiki.jenkins-ci.org/display/JENKINS/Xvfb+Plugin
I have an Applet and when I try to run it on my laptop, a headless exception is thrown by Java at the line where a JFrame is created. Now I know why the JFrame normally causes the exception but my computer was not in headless mode to begin with. I'm also still not sure what headless mode entails exactly.
I'm running Ubuntu and have a pretty recent version of java.
Also, I have successfully created JFrames and such in Eclipse when running Windows on my laptop (if that helps).
Have you tried setting java.awt.headless=true? I have done this once before on Solaris with no x-server in order to use the java.awt print libraries. It worked a treat. However it was more than five years ago and I don't have the source handy.
See Setting java.awt.headless=true programmatically
PS Are you on Ubuntu server or desktop? If the latter, I'd question why Java thinks you are headless.
Look # following link that might help:
http://www.theserverside.com/discussions/thread.tss?thread_id=52535
I've recently been learning Processing, a sort of Java based visual language. It has a feature to export sketches/scripts as html documents and open them in a browser and run them with a java applet. However, when I try to open them (on a Mac OS X 10.5.8), it redirects me to the Java page telling me that Apple supplies its own version. I checked for software updates and tried downloading another version of Java to no avail. Also, I checked on a website to see if Firefox had Java, but it said it was disabled, despite my preferences having Javascript checked off.
Any help? Thanks.
You're running an unsupported version of Java, you need to update to 10.6 or higher to get the latest version. https://discussions.apple.com/thread/3995956?start=0&tstart=0
This belongs on https://apple.stackexchange.com/ as well.
This question already has answers here:
Closed 10 years ago.
Possible Duplicate:
Determine whether client browser has java installed and can launch applets
I would like to run a check to see whether Java is not installed or if it's disabled / blocked in IE.
I have tried navigator.javaEnabled() and this works as expected in Firefox (v10.0.2), but in IE8 it returns TRUE. However, IE displays a prompt to the user:
The page you are viewing uses Java.
More information on Java support
is available from the Microsoft website.
The issue I have with this is, there is a checkbox "Do not show this message again" that can obviously be ticked and then there would no longer be any prompt to the user that Java is not enabled.
How can I handle lack of Java support in IE?
From this link:
navigator.javaEnabled() does not reveal whether Java is installed or
not in IE. It merely tells you if the applet tag is enabled or
disabled.
You can disable the applet tag in the IE security settings … Tools ->
Internet Options -> Security -> Custom Level -> Java Permissions ->
Disable Java
This will cause javaEnabled() to be false, yet Java is still
installed. For that matter, it isn’t disabled either. Only the applet
tag is disabled.
And from the same link:
The JRE (formerly Java Virtual Machine, or JVM) is actually more
difficult to handle than you would think. Determining if Java is
installed is easy—a quick call to navigator.javaEnabled() returns a
simple Boolean.* The problem is detecting the version and provider
(Microsoft or Sun).
I never found a satisfactory solution to this. The gist is this: to
get this information, you must load a Java applet.
Here's another example:
Determine whether client browser has java installed and can launch applets