How can i install Java 8 to Google Compute Engine (Debian 10) - java

First of all, I would like to say that I'm not a programmer and I am not experienced in the field. I was trying to set up a Minecraft server in the Google Compute Engine and I set it up successfuly. However, when I tried to switch it to a different version I could not open it because the server was running java 11. I removed it and tried a bunch of things to install Java 8 but I couldn't do it. Is there a way that i can reliably use to install java 8 to my server?

As you just pointed out, Debian 10's default and only officially supported java runtime is openjdk-11-jre.
Oracle provides their guide to download java on their website (https://java.com/en/download/help/linux_x64_install.html#download), which you can download, extract, and run.
I also found a nvidia-openjdk-8-jre package in the non-free repository of debian buster / bullseye. It exists for compatibility reasons and it's not recommendeded, but it might work.

Related

Can I run a java program built using Java 8 (.192) using JRE 17, or does everything (JRE, JVM, JDK) have to be on the correct Java 8 version first?

I have a program for work that I'm told will only use Java version 8 update 192 to run correctly. When I downloaded eclipse, it's suggesting that I use JRE 17.0.2 but I recalled my coworker saying I need Java 8 update 192 otherwise it won't work. Does the JRE version matter? Is it irrelevant?
Perhaps I need to download JRE 8.192? I'm not sure. Any help would be appreciated.
I have a program for work that I'm told will only use Java version 8 update 192 to run correctly.
I would doubt the accuracy of that statement. I would say that someone is making a statement without evidence ... if that is what they actually said.
Maybe a more accurate statement is that the program is only known to run on that particular version ...
Anyway, it will probably run on a later version of Java 8, or Java 11. Java 17 is less certain because of the issue of package sealing / blocking of access to internal packages that occurred in Java 16. (Some of the sealing / blocking started in Java 9 ... but there are easy workarounds ...)
Q: Do you need a JRE?
A: No. A JDK will work just as well. (A JDK distro includes a JRE.) But unless there are strong counter-indications, you need the latest version of Java 8, 11 or 17. Java 8 u192 is years out of date.
The only way to be sure that the application will work on a particular version of Java is to try it. In general, there are no shortcuts.
Java 8 is still available, as the first Long-Term Support (LTS) version. The current release is Update 331. I would suggest starting with the latest update of Java 8.
Be aware that Java 8 is not receiving regular updates for the public except for critical security patches. You may want to consider paying for a support contract from any number of vendors such as Azul Systems or Oracle to get support including possible additional updates releases through the rest of this decade.
Generally Java apps will run on later versions of Java without any modifications needed. The Java team at Oracle and the OpenJDK community place a very high priority on preserving that compatibility.
However, there are exceptions to the compatibility policy. In particular: Java 9 introduced the Java Platform Module System which caused some problems in some apps. And in later versions of Java some libraries that were previously bundled are now removed. Some of those removed libraries were transferred to the Jakarta EE project at the Eclipse Foundation. Some were abandoned for lack of interest such as CORBA.
Some few parts of Java that were for years marked as “deprecated for eventual removal” have now been removed.
If you consider moving beyond Java 8, I suggest your first step be sitting down to read through the Release Notes for every release of Java. They are quite well-written. They should alert you to any issues that may affect your app.
FYI, Java 17 is the latest LTS version. Java 18 is current.
As in the other answers, an application built for Java 8 will probably work fine in Java 17, with some caveats, but if you absolutely need the final product to run under Java 8, go get a real Java 8 runtime and set it up in your IDE. Building a Java application for any specific Java version is best done by having an actual copy of that runtime present, preferably a JDK. By having an exact version of its standard library to compile against, you can avoid accidentally referring to packages, classes, and methods added to, or removed from, later versions. You can get an OpenJDK build of Java 8 from https://adoptium.net/?variant=openjdk8 . Be sure to ask your co-worker why they're mentioning an outdated patch version.
Additionally, keep in mind that Eclipse is itself a large Java application. Running it requires Java, and a growing number of downloads include a Java runtime for that simple reason, even the ones that do not include Java development tools. You don't have to compile your code against that version of Java, though--you probably don't even want to since JDK downloads will include JavaDoc for the standard library, among other useful extras.

CA-sv will supported in Java 8?

CA service virtualization can be configured by Java 8
As I checked with CA sv document I had seen its supports only limited Java versions.
Kindly help me to get info.
As far as running DevTest Server and DevTest Workstation are concerned, the Windows installer automatically includes a compatible JDK. As of the latest GA release (10.1.0), that would be Java 8. Most recent releases have been Java 8.
On Unix, you must provide your own JVM, and there are different settings for Oracle and IBM JVMs.
https://docops.ca.com/devtest-solutions/10-1/en/installing/preinstallation/system-requirements#SystemRequirements-SupplyingYourOwnJVM
That link is specific to 10.1.0 which requires Java 8. If you have an older version, please check the version specific documentation.
Note that OpenJRE is not supported at any version.
The JDK that DevTest runs on is only important if you're writing custom extensions. You don't want to build an extension with a Java version newer than what the server uses.
Scripts within a VSM, however, are another matter. The deprecated JavaScript step, I believe, only understands JDK 1.4. I'm not certain about the JSR-223 step but, if you select Beanshell, you're probably still limited to 1.4.
You're also limited to JDK 1.4 in Beanshell expressions like:
{{=new java.util.Date();}}

Which Java EE server?

I'm moving in to developing Web Apps using Java EE and the first problem I have is not knowing which Server to use! There seems to be so many to chose from!
Glassfish server seems to stand out foremost (and it's top of the list) but when I try to start Glassfish 4.1.2, I get the error GlassFish requires Java SE version 6. and I can't download Java SE 6 for MacOSX without joining the "Oracle Club".
So which Server should I use??
You're running JDK 8, as you should. You should not be downloading JDK 6. It's long past the end of its support life.
Looks like the latest is version 5. You can download it here.
It should be said that you don't need Java EE to write Java web apps. Another alternative is Spring Boot. You won't need an app server, just an executable JAR to be run on a JDK.
Are you on OSX? You can get a JDK1.6 download here: https://support.apple.com/kb/DL1572?locale=en_US
I would be very careful with JDK1.6, it's about as safe as seatbelts made from toilet paper.

How does JDK 7's support termination affect Android development

Oracle has announced that they stop the official updates for JRE 7 and JDK 7.
As much as I know, Google doesn't say anything about JDK 8, I guess the recommended version is JDK 7 for Android development.
Is JDK 8 officially supported for Android development?
The Google Android development page and, from there, the pre-requisites page list JDK7 as a requirement.
This has nothing to do with Oracle's JRE since the code made during Android development is never meant to run on that JRE - it's supposed to be turned into Dalvik bytecode and run under Android.
So the security concerns of Oracle's JRE are not really at issue here. Google supports JDK7 (insomuch as it pertains to Android development) so that's what you should be using, pending a clear statement of intent from Google.
It looks like Google doesn't officially support the JDK 8 for Android development. See paxdiablo's answer.
But let me add some thoughts.
I wanted to try using the JDK 8 anyway. So I downloaded and installed it, and used it (and Apache Ant) to build a simple Android app.
The app doesn't use any features which are new to Java 8, such as lambdas. In addition, Ant passed a parameter to javac asking it to emit bytecode compatible with older JREs.
The app compiled fine.
The app requires that I root my phone before running it. I haven't done so yet, and haven't tested the app yet either.
Please ping me with a comment in a few weeks. Ask me to update this answer and to let you know whether or not the app worked.

JNLP. Cause client to use JDK < 7 version

After some JDK 7 updates my applet won't work (security exceptions). How I can specify JRE version range to use by client in JNLP file? I want cause him to use only JRE 6, not 7.
What you are trying to do is a Really Bad Idea.
Java 6 has been EOL'ed and that means no more free security updates. So what you are doing is encouraging people to downgrade the version of Java used by their web browsers to an out of date version of Java that is likely to have unpatched security bugs that could soon be being actively exploited to do all sorts of nasty things to the user.
The correct approach is to fix your applet so that it works with the latest JDK update (as well as older ones).
The only way out is ,detect the version of java using in browser and giving him a proper message that ,use java 6 jre.
You might heard about deployJava.js
and check the version like
if(deployJava.versionCheck("1.7")){
//message him
}

Categories