auberginehill / java-update

Retrieves the latest Java version numbers from the Interwebs, and looks for the installed Java versions on the system. If any outdated Java versions are found, tries to update the Java (a Windows PowerShell script). ** Partially obsolete **
Other
6 stars 2 forks source link

xml file moved? #1

Open frosted69 opened 6 years ago

frosted69 commented 6 years ago

I got the following error when I executed the script:

WARNING: Failed to access http://javadl-esd.sun.com/update/9.0.4/map-m-9.0.4.xml Exiting without checking the latest Java version numbers or without updating Java (at Step 10).

It looks like there's no such file as http://javadl-esd.sun.com/update/9.0.4/map-m-9.0.4.xml

I tried to translate the URI to https://javadl-esd-secure.oracle.com/ but it seems there's no equivalent path available.

frosted69 commented 6 years ago

https://javadl-esd-secure.oracle.com/update/1.8.0/map-m-1.8.0.xml exists though.

auberginehill commented 6 years ago

Thanks for the heads up!

The culprit seemed to be the java_baseline.csv file

$baseline_url = "https://javadl-esd-secure.oracle.com/update/baseline.version" $baseline_file = "$path\java_baseline.csv" $download_baseline.DownloadFile($baseline_url, $baseline_file)

...which used to list the latest version number at the top. It seems that that isn't the case anymore.

AFAICS based on the https://java.com/en/download/ page

Version 8 Update 161 Release date January 16, 2018

is currently (Jan 21, 2018) the latest Java version, and that number is listed at the second topmost position in the https://javadl-esd-secure.oracle.com/update/baseline.version page and on the java_baseline.csv file generated by this script, so I switched to selecting the second result from the java_baseline.csv file instead, when determining the latest Java versions (at Step 9). I'm frankly not quite sure, to what does the 9.0.4 refer to in that file.

Tried to fix this bug in https://github.com/auberginehill/java-update/commit/2f95215787ce3a158ff89b8fb4785cd99bc9dea6

auberginehill commented 6 years ago

...Well, I wish it was that simple.

After a little more investigation to this matter it seems that with the introduction of Java SE 9 things got moved around a bit, the version naming convention was changed and that the most recent Java version is actually different for the 32-bit and 64-bit Javas, since the Java SE 9 seems to come only with a x64 installer.

So the https://github.com/auberginehill/java-update/commit/2f95215787ce3a158ff89b8fb4785cd99bc9dea6 seems to be OK only for the 32-bit Javas, and for the 64-bit Javas the version string for the latest update release would be 9.0.4+11 (where "+" means "build" and where the version number is 9.0.4).

Java naming conventions

Old Java naming convention New Java naming convention New Java versions translated to "old" format (uniform "legacy" format)** JRE Family Version Available versions Currently in use Java naming convention
... 9.0.4+11 1.9.0_4-b11 9 only x64 9.0.4+11
1.8.0_161-b12 ... 1.8.0_161-b12 8 i586 and x64 1.8.0_161-b12
1.7.0_171-b11 ... 1.7.0_171-b11 7 ... 1.7.0_171-b11
1.6.0_181-b10 ... 1.6.0_181-b10 6 ... 1.6.0_181-b10

** not in use after JRE Family Version 8

Help wanted

At the heart of the matter is the "missing" / "not yet indentified" xml-file referenced by the OP, which would ultimately reveal the download links for Java SE 9 (and later versions of Java) or a similar online source. Shall not a suitable source be found or reported by a kind contributor, perhaps one could refer to http://www.oracle.com/technetwork/java/javase/downloads/index.html and try to figure out the download links from there.

Roadmap

1.0. Security Baselines

2.0. JRE Family 8

2.1. First XML-file - jre8 (Step 10)

2.2. Second XML-file - jre8 (Step 11)

2.3. Download links 32-bit:

2.4. Java SE Binaries Checksums - jre8

3.0. JRE Family 9

3.1. XML-file or a similar online source (for JRE Family 9 and later versions of Java), which would ultimately reveal the download links for Java SE 9 - or other related info Status: "missing" / "not yet indentified" / help wanted Possible solution: Perhaps the info could be parsed from http://www.oracle.com/technetwork/java/javase/downloads/index.html ("URL_1")

3.1.1. find "/jre9-downloads" from "URL_1" to reveal the URL of the "jre9 Link Page" (i.e. http://www.oracle.com/technetwork/java/javase/downloads/jre9-downloads-3848532.html)

3.1.2. from the "jre9 Link Page" find "windows-x64_bin.exe'" to reveal the download URL, i.e. downloads['jre-9.0.4-oth-JPR']['files']['jre-9.0.4_windows-x64_bin.exe'] = { "title":"Windows", "size":"96.62 MB","filepath":"http://download.oracle.com/otn-pub/java/jdk/9.0.4+11/c2514751926b4512b076cc82f959763f/jre-9.0.4_windows-x64_bin.exe", "SHA256":"874b71eeb072163d7a07cf03c3c0f7061e24cf739dc926e7f058a8b6b6dc7edf"};

3.2. Download links 64-bit (JRE Family 9):

3.3. Java SE Binaries Checksums - jre9

Other Java update projects (manually updated):

https://github.com/echizenryoma/Chocolatey-Package/blob/master/jdk.portable/tools/ChocolateyInstall.ps1

jalhamada commented 1 year ago

Although I have updated to the latest Java version!, I got the following error when I executed the script:

WARNING: Java 8 Update 361 seems to be outdated.

The most recent non-beta Java version is Java 0 Update 0. The installed 32-bit Java version 8.0.3610.9 needs to be updated.

another Problem is:

WARNING: Failed to access https://javadl.oracle.com/webapps/download/GetFile/1.8.0_361-b09/0ae14417abb444ebb02b9815e2103550/windows-i586/jre-0u0-windows-x64.exe

Exiting without installing a new Java version (at Step 16).