Java expiry information

Hi,

I have a requirement to check the expiry date of Java software installed in  linux servers.

We are using the below Java

java version "1.8.0_51"
Java(TM) SE Runtime Environment (build 1.8.0_51-b16)
Java HotSpot(TM) 64-Bit Server VM (build 25.51-b03, mixed mode)

I am not sure whether we can get that but after few research what  found is

a. Go to <java_home>\bin
b. Run jarsigner -verify -verbose -certs <jarfilename>.jar 

As per the above steps gave
echo $JAVA_HOME which resulted in 
/usr/lib/jvm/java



The problem is there are no .jar file in  the above path.Is there a way to get the expiry date, if so how to get.

Thanks in advance.

There is no expiry date in a a java module. Here is why -

java gets updated periodically. However, when there is a bad flaw found that nobody knew about, java will updated at that point in time with a fix for that security bug, plus possibly whatever other fully tested changes were available, if any.

Since you cannot predict the future (the exact day when some researcher documents yet another horrible java bug) there is no way to know when java will update.

Another point - updating java on some older machines like Solaris 10, has the potential for breaking a lot of middleware. We had to stay with 1.6 java on one machine and an even earlier version on another. Simply because we could not run some applications with any newer version.

If java had any kind of enforced expiry and refused/complained to work after a fixed date all of these apps would have been worthless or very annoying to use.

1 Like

Hmm, this article says there is a hardcoded end date in Java, that applies in the case Oracle cannot be contacted over the internet.

This means Java based software will automatically get unusable when there is a newer Java version in Oracle or if the built-in end date has passed.

IMHO planned obselescence is a committed crime, regardless if hardware or software!

I do not think it stops functioning and I did not know that, so my advice was not correct.
I apologize for the incorrect information.

Here is the oracle statement on java eol dates. AFAIK they are just that, dates.

Oracle Java SE Support Roadmap

Hmm.

# J == path/to/java
 strings $J | grep '[0-9]{2}\/[0-9]{2}\/[0-9]{4}'

So it is not embedded as a human readable date in the executable image I have
java version == 8-151