tis-oracle-java8-jre-nonfree icon

Java SE JRE 8

Silent install package for Java SE JRE 8

8.0.451-16

  • package: tis-oracle-java8-jre-nonfree
  • name: Java SE JRE 8
  • version: 8.0.451-16
  • categories: System and network
  • maintainer: WAPT Team,Tranquil IT,Jimmy PELÉ,Ingrid TALBOT
  • editor: Oracle
  • licence: proprietary_restricted,wapt_public
  • locale: all
  • target_os: windows
  • impacted_process: java,java-rmi,javacpl,javaw,javaws,jjs,jp2launcher,jabswitch
  • architecture: x64
  • signature_date:
  • size: 72.65 Mo
  • installed_size: 504.78 Mo
  • homepage : https://www.oracle.com/java/
  • conflicts :

package           : tis-oracle-java8-jre-nonfree
version           : 8.0.451-16
architecture      : x64
section           : base
priority          : optional
name              : Java SE JRE 8
categories        : System and network
maintainer        : WAPT Team,Tranquil IT,Jimmy PELÉ,Ingrid TALBOT
description       : Last "paid" version provided by Oracle for Java Standard Edition Runtime Environment 8
depends           : 
conflicts         : tis-oracle-java8-jre-free
maturity          : PROD
locale            : all
target_os         : windows
min_wapt_version  : 2.3
sources           : https://www.java.com/download/manual.jsp
installed_size    : 504781203
impacted_process  : java,java-rmi,javacpl,javaw,javaws,jjs,jp2launcher,jabswitch
description_fr    : Dernière version "payante" fournie par Oracle pour Java Standard Edition Runtime Environment 8
description_pl    : Ostatnia "płatna" wersja dostarczona przez Oracle dla Java Standard Edition Runtime Environment 8
description_de    : Letzte "kostenpflichtige" Version, die von Oracle für die Java Standard Edition Runtime Environment 8 bereitgestellt wurde
description_es    : Última versión "de pago" proporcionada por Oracle para Java Standard Edition Runtime Environment 8
description_pt    : Última versão "paga" fornecida pela Oracle para Java Standard Edition Runtime Environment 8
description_it    : Ultima versione "a pagamento" fornita da Oracle per Java Standard Edition Runtime Environment 8
description_nl    : Laatste "betaalde" versie van Oracle voor Java Standard Edition Runtime Environment 8
description_ru    : Последняя "платная" версия, предоставленная Oracle для Java Standard Edition Runtime Environment 8
audit_schedule    : 
editor            : Oracle
keywords          : oracle,java,jre,runtime,environment,java8
licence           : proprietary_restricted,wapt_public
homepage          : https://www.oracle.com/java/
package_uuid      : 135116b2-cffe-45e4-aeb0-af7e01d05f88
valid_from        : 
valid_until       : 
forced_install_on : 
changelog         : https://www.java.com/download/faq/release_changes.xml
min_os_version    : 6.0.6002
max_os_version    : 
icon_sha256sum    : 6f431b57c4be56a78b1103cc94eb2c81ead93fe4b9928fdea3eabc99644174e3
signer            : Tranquil IT
signer_fingerprint: 8c5127a75392be9cc9afd0dbae1222a673072c308c14d88ab246e23832e8c6bb
signature_date    : 2025-04-17T17:04:15.000000
signed_attributes : package,version,architecture,section,priority,name,categories,maintainer,description,depends,conflicts,maturity,locale,target_os,min_wapt_version,sources,installed_size,impacted_process,description_fr,description_pl,description_de,description_es,description_pt,description_it,description_nl,description_ru,audit_schedule,editor,keywords,licence,homepage,package_uuid,valid_from,valid_until,forced_install_on,changelog,min_os_version,max_os_version,icon_sha256sum,signer,signer_fingerprint,signature_date,signed_attributes
signature         : jmUfiULnWvI+rp4cpJeuuYEH2TC4acECeJLjpZrSVq2v6u9CDF/vnsrvCdA2Xvrv1sFlfen9r9uNcn9fwfL42VzQjrlzg2UiKeYSp0QtAA54WXxDY5FCeRTFO1ZDzIDvUM6UX3tllumfkSJNTkq1e8dp/5/MLYCYCRD9X72GXt6zA0tfzY+HtVB5wn3r1Qrin1oIvSIPMeBLDbZroBjFU/PxQJNSjyELxhubti9u54KBPGOBIE0d492gNru0pgN1pJEsJxi2eEZUp7A9jy/2nT8SSBBklJRVtrEgSeLpnT2gJBsUla9XntaW/mEc8oyl9qVeu+may8lrMqNKCict7w==

# -*- coding: utf-8 -*-
from setuphelpers import *

"""
Please note that this is the last version of Java Runtime Environment (JRE) under OTN License that mean that you can ONLY use for free for personal or development use. More info here: https://blogs.oracle.com/java-platform-group/oracle-java-se-releases-faq
Installation procedure: https://docs.oracle.com/javase/8/docs/technotes/guides/install/windows_installer_options.html
Using a Configuration File: https://docs.oracle.com/javase/8/docs/technotes/guides/install/config.html

{
    "key": "{77924AE4-039E-4CA4-87B4-2F64180381F0}",
    "name": "Java 8 Update 381 (64-bit)",
    "version": "8.0.3810.9",
    "install_date": "2023-07-18 00:00:00",
    "install_location": "C:\\Program Files\\Java\\jre-1.8\\",
    "uninstall_string": "MsiExec.exe /I{77924AE4-039E-4CA4-87B4-2F64180381F0}",
    "publisher": "Oracle Corporation",
    "system_component": 0,
    "win64": true,
},
{
    "key": "{77924AE4-039E-4CA4-87B4-2F32180381F0}",
    "name": "Java 8 Update 381",
    "version": "8.0.3810.9",
    "install_date": "2023-07-18 00:00:00",
    "install_location": "C:\\Program Files (x86)\\Java\\jre-1.8\\",
    "uninstall_string": "MsiExec.exe /I{77924AE4-039E-4CA4-87B4-2F32180381F0}",
    "publisher": "Oracle Corporation",
    "system_component": 0,
    "win64": false,
}

"""


def install():
    # Initializing variables
    short_version = control.get_software_version().split("8.0.")[1]
    bin_name_x86 = f"jre-8u{short_version}-windows-i586.exe"
    bin_name_x64 = f"jre-8u{short_version}-windows-x64.exe"
    silentflags = 'INSTALLCFG="%s" /s' % makepath(basedir, "java.cfg")
    app_uninstallkey_x86 = "{71024AE4-039E-4CA4-87B4-2F32180%sF0}" % short_version
    app_uninstallkey_x64 = "{71024AE4-039E-4CA4-87B4-2F64180%sF0}" % short_version

    # Uninstalling the other architecture of the software
    for to_uninstall in installed_softwares(name="Java 8"):
        if "Oracle" in to_uninstall["publisher"]:
            if "x64" in ensure_list(control.architecture) and not to_uninstall["win64"] or force:
                print("Removing: %s (%s)" % (to_uninstall["name"], to_uninstall["version"]))
                killalltasks(ensure_list(control.impacted_process))
                run(uninstall_cmd(to_uninstall["key"]))
                wait_uninstallkey_absent(to_uninstall["key"])
                if isdir(to_uninstall["install_location"]):
                    remove_tree(to_uninstall["install_location"])

    # Installing the software
    if not "arm" in control.architecture:
        install_exe_if_needed(
            bin_name_x86,
            silentflags=silentflags + r' /L "%s"' % r"C:\Windows\Temp\%s" % bin_name_x86.replace(".exe", ".log"),
            key="",
        )
    if "x64" in control.architecture:
        install_exe_if_needed(
            bin_name_x64,
            silentflags=silentflags + r' /L "%s"' % r"C:\Windows\Temp\%s" % bin_name_x64.replace(".exe", ".log"),
            key="",
        )

    # Uninstalling the software updater
    for to_uninstall in installed_softwares(name="Java Auto Updater"):
        print("Removing: %s (%s)" % (to_uninstall["name"], to_uninstall["version"]))
        killalltasks(ensure_list(control.impacted_process))
        run(uninstall_cmd(to_uninstall["key"]))
        wait_uninstallkey_absent(to_uninstall["key"])

    # Disabling Automatic Updates and removing SunJavaUpdateSched startup key
    print("Disabling: Automatic Java Updates")
    if iswin64():
        registry_delete(HKEY_LOCAL_MACHINE, r"SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Run", "SunJavaUpdateSched")
        registry_set(HKEY_LOCAL_MACHINE, r"SOFTWARE\Wow6432Node\JavaSoft\Java Update\Policy", "EnableJavaUpdate", 0)
    registry_delete(HKEY_LOCAL_MACHINE, r"SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "SunJavaUpdateSched")
    registry_set(HKEY_LOCAL_MACHINE, r"SOFTWARE\JavaSoft\Java Update\Policy", "EnableJavaUpdate", 0)

# -*- coding: utf-8 -*-
from setuphelpers import *


def update_package():
    # Declaring local variables
    package_updated = False
    proxies = get_proxies()
    if not proxies:
        proxies = get_proxies_from_wapt_console()
    url = "https://www.oracle.com/java/technologies/javase-jre8-downloads.html"
    # Download Guide: https://gist.github.com/wavezhang/ba8425f24a968ec9b2a8619d7c2d86a6
    # https://gist.github.com/wavezhang/ba8425f24a968ec9b2a8619d7c2d86a6#gistcomment-3377085

    # Getting latest version from official website
    # bs_search = bs_find_all('https://www.java.com/en/download/manual.jsp', 'a', 'title',  'Download Java software for Windows Offline')
    bs_search = bs_find_all(url, "a", "href", "/downloads/javase-software-license-agreement.html#license-lightbox", proxies=proxies)
    for bs_seak in bs_search:
        if bs_seak["data-file"].endswith("-windows-i586.exe"):
            update_number = bs_seak["data-file"].split("/")[-3].split("-")[-0].replace("8u", "")
            build_number = bs_seak["data-file"].split("/")[-3].split("-")[-1].replace("b", "")
            encrypted_path = bs_seak["data-file"].split("/")[-2]
            break

    arch_name_x86 = "windows-i586"
    arch_name_x64 = "windows-x64"
    latest_bin_x86 = "jre-8u%s-windows-i586.exe" % update_number
    latest_bin_x64 = "jre-8u%s-windows-x64.exe" % update_number
    file_name_x86 = "jre-8u%s-%s.exe" % (update_number, arch_name_x86)
    file_name_x64 = "jre-8u%s-%s.exe" % (update_number, arch_name_x64)

    # https://sdlc-esd.oracle.com/ESD6/JSCDL/jdk/8u271-b09/61ae65e088624f5aaa0b1d2d801acb16/jre-8u271-windows-i586.exe?GroupName=JSC&FilePath=/ESD6/JSCDL/jdk/8u271-b09/61ae65e088624f5aaa0b1d2d801acb16/jre-8u271-windows-i586.exe&BHost=javadl.sun.com&File=jre-8u271-windows-i586.exe&=1603380937_844fab0e9ecd6dcdf4efe8d98d697ce4&ext=.exe
    # https://javadl.oracle.com/webapps/download/AutoDL?BundleId=243735_61ae65e088624f5aaa0b1d2d801acb16 # jre-8u271-windows-i586.exe
    # https://javadl.oracle.com/webapps/download/GetFile/1.8.0_271-b09/61ae65e088624f5aaa0b1d2d801acb16/windows-i586/jdk-8u271-windows-x64.exe
    # https://javadl.oracle.com/webapps/download/GetFile/1.8.0_[xxx]-b[xx]/[encrypted_path]/windows-i586/[file_name_exe]

    url_dl_x86 = "https://javadl.oracle.com/webapps/download/GetFile/1.8.0_%s-b%s/%s/%s/%s" % (
        update_number,
        build_number,
        encrypted_path,
        arch_name_x86,
        latest_bin_x86,
    )
    url_dl_x64 = "https://javadl.oracle.com/webapps/download/GetFile/1.8.0_%s-b%s/%s/%s/%s" % (
        update_number,
        build_number,
        encrypted_path,
        arch_name_x86,
        latest_bin_x64,
    )
    version = "8.0.%s" % update_number
    print("Latest %s version is: Update %s" % (control.name, update_number))

    # Downloading latest binaries
    if not "arm" in control.architecture:
        if not isfile(latest_bin_x86):
            print("Downloading " + latest_bin_x86)
            if not isfile(latest_bin_x86):
                wget(url_dl_x86, latest_bin_x86, proxies=proxies)
        latest_bin = latest_bin_x86
    if "x64" in control.architecture:
        if not isfile(latest_bin_x64):
            print("Downloading " + latest_bin_x64)
            if not isfile(latest_bin_x64):
                wget(url_dl_x64, latest_bin_x64, proxies=proxies)
        latest_bin = latest_bin_x64

    # Deleting outdated binaries
    remove_outdated_binaries(update_number)

    # Checking version from file
    version_from_file = get_version_from_binary(latest_bin)
    if not update_number in version_from_file and version_from_file != "":
        print("ERROR: Binary file version do NOT corresponds to online version")
    else:
        print("INFO: Binary file version corresponds to online version")

    # Changing version of the package
    if Version(version, 4) > Version(control.get_software_version(), 4):
        print("Software version updated (from: %s to: %s)" % (control.get_software_version(), Version(version)))
        package_updated = True
    else:
        print("Software version up-to-date (%s)" % Version(version))
    control.set_software_version(version)
    control.save_control_to_wapt()

    # Validating or not update-package-sources
    return package_updated

    # # Changing version of the package and validating update-package-sources
    # return complete_control_version(control, version)

38d056ab130f7bf7c481c12636a4e9959de36561d3dfcbe54c6e3571bc0c1dc3 : WAPT/certificate.crt
db517faa77680986754da8180dd8d61d34256764083820a4c60f01492dab3fd6 : WAPT/changelog.txt
3a15c6c83b40e4946887c5465358220e4b883f25264f137e7450e73adb933fae : WAPT/control
6f431b57c4be56a78b1103cc94eb2c81ead93fe4b9928fdea3eabc99644174e3 : WAPT/icon.png
70a8b8e776639fc7ad0583837d806d77102f75551840a1f56f89470515c4c4dd : java.cfg
7a7cc731cf3bb0e8a8e003b85adbbe9a365cebc32e4e5b53ab9c77c16cc1b52c : jre-8u451-windows-i586.exe
86be7da90c5036ff1e60294306ee9cd374e31194182efed1fa044cf824dba0cf : jre-8u451-windows-x64.exe
ad0a4dd2991e930e7aee51dbdb9bbe86889d6462976a4c9277ad9d2509f9170e : luti.json
e903092be2d9632ecbff5ad3899069aede6a5b7be9d2a459421182518f40ff23 : setup.py
5e6975705375a1063ad640d0db336db934342aba3b6c7c6381d480b657205d14 : update_package.py

https://www.java.com/download/faq/release_changes.xml
-14
===
no longer make combo archs x64/all package


8.0.381-12
===
proprietary_restricted since Oracle OTN Licence is too restrictive
package splitted in archs
major code rework:
  - code reduced
  - no longer uninstall by default
  - debug with force install with smarter install and uninstall
  - generate log by default
min_os_version is now Windows Vista, Service Pack 2