Get JRE version from System Property - java

It's not a duplicate. I would like to get current JRE version while program is executing.
To test result I've installed JDK 8.91 (without JRE 8.91 installation) and JRE 8.77. Also I've created JRE_HOME, JAVA_HOME variables, excluded Path variable with JDK folder.
My Tomcat uses JRE so I would like to get current JRE version before I will launch it. I found solution like:
System.getProperty("java.version")
After executing
System.out.println(System.getProperty("java.version"))
I get result 1.8.0_91 Instead of 1.8.0_77, which I wanted to get.
However, Oracle documentation gives the definition that this is JRE version.
Link:http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/System.html#getProperty%28java.lang.String%29
How can I fix it?

When you run a Java program, it always runs on a JRE (Java Runtime Environment). You cannot run a program on the JDK directly.
When you install Oracle's JDK, a JRE is included, you can find it in the jre directory in the JDK installation directory.
When you install Oracle's JDK, you get an option to install a "public JRE". This is a JRE that is installed separately from the JDK itself, and is used by browser plug-ins. You need this only if you want to be able to run Java applets in your browser.

Related

I installed OpenJDK, now I'm installing Tomcat. Where is the JRE?

I'm installing Tomcat 8. It is requiring a JRE:
I installed OpenJDK for Windows. I did some Googling and got conflicting results of whether or not the JDK has the JRE inside it. I also got something that said the JDK is the JRE, so I'm confused.
I did standard installation of OpenJDK. As far as I can tell.
The JDK comes bundled with a JRE. This means that whenever you install the JDK it also installs a JRE.
As to where is the JRE. Please look inside the folder where JDK is installed.
Normally for windows the path looks something like:
C:\Program Files\Java\jdk8u222-b10\jre
However, it is still possible to install the JRE separately also.
Update:
If your installation doesn't look like this, you may be able to do
echo %JAVA_HOME%
or
which java
To get the location of your jre. OP says the jre location was the same as JAVA_HOME, not the bin folder...

why two JRE are installed while installing java

I installed jdk 1.8. While installing, two JRE were copied to my computer:
The first is inside JDK folder and the second is outside .What's the purpose of having two JRE in the same Operating System .
Isn't one JRE enough to handle all requests .
Private vs. public JRE - Installing the JDK installs a private Java SE
Runtime Environment (JRE) and optionally a public copy. The private
JRE is required to run the tools included with the JDK. It has no
registry settings and is contained entirely in a jre directory
(typically at C:\Program Files\jdk1.6.0\jre) whose location is known
only to the JDK. On the other hand, the public JRE can be used by
other Java applications, is contained outside the JDK (typically at
C:\Program Files\Java\jre1.6.0), is registered with the Windows
registry (at HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft), can be removed
using Add/Remove Programs, might or might not be registered with
browsers, and might or might not have java.exe copied to the Windows
system directory (making it the default system Java platform or not).
Source: http://www.oracle.com/technetwork/java/javase/install-windows-189425.html
Browser will run from java/jre
Java running from java/jdk/jre
When we install internet Explorer it will download jre
JDK/jre wil be use by the command line tool because command line default java home will be set to jdk with it looks for jre and run the java.exe inside the jdk/jre

Java -version prints a wrong version

I have multiple versions of Java installed in the environment(I know it is bad). I've set the JAVA_HOME to jdk 1_4 directory. This is not installed, but extracted from zip and placed it somewhere. We have java 1.8 JRE also installed in the system. I never set the path to this installed directory. Now i'm trying to run some ant script that depends on jdk 1_4. I get some exception saying that it is not able to find tools.jar in java1.8... .
My question is that when the path and java_home are set to jdk 14 why does the ant look for 1.8 version of java? I'm confused.
Update: I have looked up the duplicate issue.
Additional details: Java -version prints 1.8 with jdk 14 in the path and java_home. I uninstalled 1.8. reopened cmd tried java -version, now it errors out saying that it is not able to find java1.8 instead of trying to find the next java available in the path or java_home.
Error shown:
C:\Users\usrpao>java
Error: could not open `C:\Program Files\Java\jre8\lib\amd64\jvm.cfg'
I have multiple versions of Java installed in the environment(I know it is bad). I've set the JAVA_HOME to jdk 1_4 directory.
Not wrong at all. I have a similar setup because I have to switch between Java version.
First, install Java JDKs in the root of your drive. No spaces in the directory names. For example, C:\Java\Java-1.6-21 and C:\Java\Java-1.7-5.
In your Environment Variables section in your System Control Panel (under Advance), create an environment variable to point to each one of these Java Home directories. For example, JAVA_HOME_17 = C:\Java\Java-1.7.5 and JAVA_HOME_16 = C:\Java\Java-1.6-21. This should be a System Environment variable.
Create a JAVA_HOME environment variable that points to the Java version you want: JAVA_HOME = %JAVA_HOME_17%.
Now in the System PATH, prefix the PATH (the very first entry) with %JAVA_HOME%\bin.
When you open a console window, your default java and javac commands will be the correct Java version.
If you need to change a version, change the JAVA_HOME environment variable to point to the correct environment variable and open a new console window. Now that new Java will be in your path.
NOTE: It is vitally important that %JAVA_HOME%\bin is in the first part of your PATH before C:\Windows\System32. You don't want the java.exe that exists in that directory to be your default java.
You haven't specified the operating system, so:
on windows, java installs a java.exe in C:\Windows\system32, which is probably on the path before java_home, and so gets picked up
on Linux, various distributions that support multiple installed java versions will also have some symlink earlier on the path. Run 'which java' to determine where that symlink is
Multiple java versions in the system is the problem, I uninstalled all the java versions first. Restarted my machine. Path and java home points to the jdk 1.4. java -version now points to the version specified in the path. Thanks all.

Android - Eclipse JRE not found

I have downloaded Android ADT Bundle and trying to create hello world android app.
I am following Setting up ADT Bundle which says just extract the zip file and launch the Eclipse.
I am getting following error
"A Java Runtime Environment (JRE) or Java Development Kit (JDK) must be available in order to run Eclipse. No Java virtual machine was found after searching the following locations: C:\adt\adt-bundle-windows-x86_64-20131030\eclipse\jre\bin\javaw.exe ..."
I know I can install JRE (with or without JDK), and set up javaw.exe dir in path ENV and the problem will go away.
But I think i ADT bundle should be self sufficient and should not require any additional download. Peculiar thing is that I cannot find jre dir inside eclipse.
Am I missing some additional steps? if yes, what steps?
Not sure this the best way to do but if copy paste the JRE folder inside the ecplise folder it works.
But I think i ADT bundle should be self sufficient and should not require any additional download. Peculiar thing is that I cannot find jre dir inside eclipse.
I don't think so eclipse folder will be having JRE folder you have to specify the path JDK path in ENV.
Check Windows -> Preferences -> Compiler and Windows -> Preferences -> Installed JREs.
If not configure them. If you have not installed JDK(It has JRE in it) then install it first.
To verify type java -version in your command line.
You should get output like
java version "1.7.0_11"
Java(TM) SE Runtime Environment (build 1.7.0_11-b21)
Java HotSpot(TM) 64-Bit Server VM (build 23.6-b04, mixed mode)
(Java 7 is latest but you can use any version that suits your requirement)
You should Install JDK and set class path. Because for compilation you need JDK not just JRE and JDK internally contain JRE.Therefore no need of installing JRE separately.

Java Compilation error Not able to configure JAVA_HOME

When i am running Jenkins which checks out code from a repository and perform mvn package or some command. I get this error:
Unable to locate the Javac Compiler in: /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre/../lib/tools.jar
Please ensure you are using JDK 1.4 or above and not a JRE (the com.sun.tools.javac.Main class is required).
In most cases you can change the location of your Java installation by setting the JAVA_HOME environment variable.
My JAVA_HOME points at jdk location only.Still it looks at
/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre/../lib/tools.jar
for the compiler.Why is that???
It seems the problem is with the code ..It points to /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre/../lib/ for the tools.jar,whereas it needs to look into the /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/lib/ where the jar is present.I tried copying the jar to jre /lib/ but to no avail.Any solutions for this...
Thanks for d answers anyway..
You need jdk (java development kit) to compile java programs. jre only use to run compiled java programs. in your case its point to a jre and thats why you are getting this.
you can download the jdk and install.
you can download jdk rpm from here
http://www.oracle.com/technetwork/java/javase/downloads/jdk7u9-downloads-1859576.html
use this to choose java alternative if you have already installed.
/usr/sbin/alternatives --config java
Uninstall the installed JRE. Keep only one JAVA defined by JAVA_HOME and define your lib and classpath with respect to JAVA_HOME.

Categories

Resources