Is there a way to point to a specific JRE/JDK location to run a JWS application? I'm looking into specifying the actual location of the JRE, not only it's version via Java SE element of JNLP file. I dont want to access any system JRE, I only want to use whats bundled with my application.
Currently I am trying to bundle 1.6_45 with my app. However I am encountering issues when a user has 1.7_xx JRE installed on their system. It blocks the launch of the webstart application. The jars are self signed and getting them signed by a CA authority is not an option as it is too $$. I changed the j2se version tag in my jnlp to say 1.6* and this allowed it to run with 1.7_xx present. One bug squashed.
Now the issue is that systems are being upgraded to 1.6_71 [private oracle version], that apparently has some 1.7 security fixes backported in it. So now because of the jnlp tag having 1.6*, my app is picking up 1.6_71 and completely hanging. Webstart just opens the java console and hangs. I tried adding -Djnlpx.home to the jnlp java-vm-args, pointing to the bundled jre/bin, but no luck there.
One way I tried [from a post here on SO] is that I created a shortcut to my particular javaws passing the jnlp file location as a parameter. This did not work. It still picked up 1.6_71 and hung.
At this point, if I google anymore, its going to start showing me a captcha...sigh.
Any pointers are greatly appreciated! Thanks!
Is there a way to point to a specific JRE/JDK location to run a JWS application?
Short answer, no. Long answer, nope.
Oracle's latest release of Java 7 Update 51 includes new security changes that will block some applications. This is the new "security baseline" and there is apparently an equivalent code level for 1.6.
One of the configuration options that helps determine what exactly happens is the Security Level, found in the Security tab from (Windows) Control Panel -> Java. If you set the security level at it's lowest (can't remember the name) then you might not get blocked. Security level High will block unsigned and self-signed. Security Level Very High will be even more restrictive, like blocking an expired application - meaning the certificate has expired.
Also, maybe you could try setting the specific level of the JRE you want to run - see the link
http://docs.oracle.com/javase/6/docs/technotes/guides/javaws/developersguide/syntax.html#jnlp
for more info.
Related
I have JRE 8u211 installed on a Windows 10 box with IE 11. I can see the Java plugin (and plugin 2) are installed and enabled. I have the "Allow active content to run in files on my computer" option checked under Security. But I cannot get a Java applet to load. Every time the page loads, I get the "The page you are viewing uses Java" notification as if the browser thinks I don't have Java installed.
What am I missing?
Figured it out. I'd forgotten that IE traditionally doesn't seem to like x64 Java installs very much. Once I dropped a 32 bit version, everything worked.
In the perfect dream world where all software development makes use of current and best practices, applets might be dead. But in the actual world of legacy support, they are (unfortunately) still alive.
I second the comment by Elliot Fischer... However, there is still quite a lot of Hardware that is still being supported, or even potentially manufactured (sold for sure) that can only function with these Java applets.
I had this problem with my Motorola FX7400. Of course Motorola says it's "Service & Support Discontinuation Date" is 30.8.2019. Of course the latest firmware is from 2015 and doesn't have a hint of any type of certificate or signing of java applets!
For most applets that have not been updated since the very latest Java Security settings were upgraded in around 2013-2015 and which most likely are also only 32-bit and have no signing of any sort on them; Do the following steps. Of course, even I CANNOT RECOMMEND THIS METHOD AT ALL FOR APPLICATIONS RUN FROM THE INTERNET Also, you should take precautions when trying to use Java like this on Hardware you are not familiar with.
The steps that are required for Windows 7, 8.1 & 10 with Internet Explorer 11 are as follows:
Download and install latest JRE SE 32bit from here: https://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html (And yes, you need to give out your private data including address and phone number. You also need to pay for a license, if you are not a developer or a private user)
Start Internet Explorer 11 (64 bit seems to work fine)
Ensure ActiveX filtering is disabled Tools -> ActiveX filtering On my install disabling this was only necessary to be able to run the Java test from the "alternate page", which is marked "IE 11 users:": https://www.java.com/en/download/installed.jsp
Check that the Java plugin is enabled Tools -> Manage Add-ons
Check that your security zone has Scripting of Java applets enabled. On my IE11 it was enabled by default even for the Internet-zone set to Medium-High with protected mode on Tools -> Internet Options -> Security -> (select your appropriate zone) -> Custom level -> Scripting of Java applets
If the applet that needs to run is not properly signed (very likely...), it is required to set every single URL where an applet is run in to the exceptions. (As of writing this answer, at least wildcars for paths are working.)
When running the applet, accept the security exception prompts that Java prompts for.
And finally! For some reason there will at some point when loading an applet that previously loaded fine be a prompt about not being able to run the applet, because only applications that meet the very high security settings (signed applets) can be run. To get back to running again, Java's temporary files need to be removed. Restoring security prompts has no effect. Start Menu -> Configure Java -> General tab -> Temporary Internet Files -> Settings... -> Delete Files -> OK C:\Users\%username%\AppData\LocalLow\Sun\Java\Deployment\Cache -directory probably also works.
Security and prompts really have come far in the past 10 years, haven't they?
I jumped here searching for an answer that I found elsewhere and I would like to share.
According to my experience the problems of IEx64 with jre x64 are due to the fact that internet explorer tabs are 32 bit processes, so they work only if they find a 32 bit jre. There is a registry key to force IEx64 to open x64 tabs:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main
Dword TabProcGrowth set to 0
I heard it is considered a security flaw, but it can be accepted if IE is used only with well known legacy web applications.
About IEx64
In the folder
\Program Files (x86)\Internet Explorer
there is the 32 bit version and when you open a page in IEx64 it is actually displayed by an new instance of IEx86. You can check this using task manager, going on detail tab and looking at the application path.
We are trying to download something from GE that uses Java to download when logging into the site. This is a windows 7 Professional PC. I have other computers that are able to do this successfully. Here is my order of operations:
Log into the site and select the file I want to download
Click download
It takes me to the page that says it will start in a few seconds but nothing happens. It is supposed to have a box that asks for Java to run.
I have reinstalled Java fresh and still nothing. Tried with multiple user accounts. Added the site to the list of exceptions in the firewalls and Java configuration. I have tried an earlier version of Java. This happens in Mozilla, Chrome and IE. I have made sure that the Java plugin shows up and is enabled. I just cant think of what I am missing. And since we are a contractor GE is not going to help us. Can anyone here think of anything?
Are you sure you have the Java plugin enabled? e.g. in Firefox, go to Settings, Plugins, and change Java Platform SE8 'Next Generation Java Plugin' to 'always activate'?
This sounds similar to the issues I had with Cisco WebVPN, Java-style. Once you have Java installed correctly and set as a plugin for any of the browsers you would like to use, see below.
Before you even start looking at browsers - if you think it is already set up correctly
Look at your Anti-Virus programs or anything else that could prevent it from working. McAfee Host Intrusion Protection is known to cause many Java programs to fail. Kapersky had issues, a while back, with Java on Windows (Java Applets not loading in Windows 8 ).
You must have a 64-bit browser to use 64-bit Java (also mentioned in the Chrome link below).
See below for any specific things that can be modified in the browser.
Chrome 43 is the more complicated browser to set up. They have a dedicated page with instructions.
How do I use Java with the Google Chrome browser?
Firefox 38 will prompt you.
In Internet Explorer 11, it's under Internet Options->Security. I recommend adding the hostname the applet is on as a Trusted Site (Select Trusted Sites and click the Sites button, then add the first part of the url). Click the Custom level button and make sure that Scripting of Java applets is not disabled.
If you still have problems with the applet:
Verify your Java version will work with the applet you are accessing
Verify the plugin is enabled for the browser through the Java Control Panel, which is available in Windows Control Panel, or on Mac/Linux, execute it from the JDK directory ($JAVA_HOME/ControlPanel ).
I ended up fixing the issue. I had to allow their UK site on the list for Java and enable the SSL 2.0 for HTTP in Java config as well
I try to get a local applet running on a local HTML page. I have put the file on the exception list as
file:///c:/work/test.html
I also tried simple things like
file://
I have checked that the Java configuration is from the same version as the Java plugin. The first version 1.8.0_25-b18 I took from the configuration tool and its button "Info". The other from the Java console. The plugin version is 11.25.2.18.
So far nothing worked. I always get an error message telling me (in German) that my security settings prevent the application of local applets.
What now?
Go to java settings in Control Panel -> Java -> Security Tab and make sure that Enable Java content in browser is on and your security level is not too high - that was a problem when I was testing the applet.
In addition to this as far as I know in Java 8 security settings requires applet to be signed., so no more unsigned and self signed, I am still on 7 + last time I had to do with applets was about a year ago.
I have already asked this and was heavily downvoted. Unfortunately, I still can't solve it. I don't know what I do, but sooner or later I loose an ability to run java applets and java web start applications in all browsers.
Here is an example what is happening.
I am opening page with applets http://csis.pace.edu/~bergin/Java/applets.htm and getting the following picture:
with signs plugins were blocked. I am trying to unblock
which causes another dialog
after OK I have another
next
if clicked
And so on.
Applet doesn't run.
After dancing with PATHes, Java updates and so one, once I can have applet run. But sooner or later I will stuck in this position again.
I would like to know, is it possible to exclude this situation in principle?
I mean I don't want to disable security at all, but I mean that in case my explicit permission everything should run. Is it possible to do that?
UPDATE
First of all, I don't understand, why can't I run applet on outdated java if I want?
I am a human and robots should obey me! :)
Suppose I wish to debug my applet on old version of java, why not?
Second, there is no information about what version it thinks I have and what version it wants?
Without this information it is possible that there is just a bug in version detection mechanism.
I have multiple versions of Java in Program Files since I am a Java developer. Then how can I know which one it uses?
UPDATE 2
I have updated my Java from 1.8.0_20 to 1.8.0_25 and now situation have changed, but applets are sill impossible to run.
The proof I have "latest" java:
The proof I have added the site above to exclusions list:
The effect of applet run:
(applet not runs)
Clicking details result:
(no any details in fact)
So, what to do?
UPDATE 3
This site is not working: http://ssd.jpl.nasa.gov/sbdb.cgi?sstr=2012VP113;orb=1;cov=0;log=0;cad=0#orb
(show orbit diagram)
Reloading/restarting browser does not help.
I looked at your html source and realized you're using the .class file directly instead of wrapping it in a jar file. This is what you have:
<applet code="GSort.class" width=700 height=400>
I think applets no longer work when using .class files directly due to new security requirements. They have to be wrapped in jar files because you need to add some security settings to the meta-inf folder of the jar file. Here is how oracle recommends deploying an applet:
https://docs.oracle.com/javase/tutorial/deployment/applet/deployingApplet.html
Edit:
I tried again with adding the site url to the Java security exception list and this time I got it to work! It looks like chrome stays in memory after exiting so changing Java security doesn't affect it unless you shut down chrome completely and restart it. Easiest way is to use Internet Explorer. Try it with Internet Explorer and it should work (assuming that you still have the site added under java security exception list).
Can anyone explain the use of having multiple JRE's in the Control Panel Applet of Java?
Refer to attached snapshot http://ge.tt/5YRkjNm/v/0?c of the location i am referring to.
An applet or desktop app. deployed using Java Web Start can request a specific version of the JRE in the launch file.
Different JREs have different compatibility issues. Code that worked on an earlier version of java may not work on a later version. Also, if there's multiple JREs, it may be hard to decide on one to keep. Thus, it's best to let the user choose.