tis-oracle-java8-jre-nonfree icon

Java SE JRE 8

Silent install package for Java SE JRE 8

8.0.441-15

  • package: tis-oracle-java8-jre-nonfree
  • name: Java SE JRE 8
  • version: 8.0.441-15
  • 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: 127.40 Mo
  • installed_size: 504.78 Mo
  • homepage : https://www.oracle.com/java/
  • conflicts :

package           : tis-oracle-java8-jre-nonfree
version           : 8.0.441-15
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      : a7de3f64-ece7-4dfe-9bb7-db1df074783c
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-02-16T17:26:05.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         : pjFMpZ9E8gNqy7g+2Pb+30Evrg1F2XjuLkjVBFvNZmWfxx9afZ8UcFzT4WHSeuDztaQ6aWJP0v6WdoFNHIKanYi9h0ZMhlyIz3ViuNW1/MVtB2fRbXdKenndhV5PYB8wJ9nsZZ6XHkOVeIkFiy7nJQFO/WnlYauVy1KHbVV2BaMUybPkazDBSRz/AR7UBXYRvH6BdMvXJT+mq9ZxjlR1JxehkG+f4WafCttPTwxmizCVjB/P7ueRo/y0f3QZAg+OWQbD7owHtFyvTjBV9EulWKBkK90Uy3jLqwfD27ZTYprKiEeylSS0O3/nUmoAEQcgACZ5Yzv3PkxRDzHgt2UAIw==

# -*- 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 = "{77724AE4-039E-4CA4-87B4-2F32180%sF0}" % short_version
    app_uninstallkey_x64 = "{77724AE4-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=app_uninstallkey_x86,
        )
    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=app_uninstallkey_x64,
        )

    # 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
f3fb9ab3402d36240df2ddd8145bff2d716538d9cfb036ffd118cccfacbc14bc : WAPT/control
6f431b57c4be56a78b1103cc94eb2c81ead93fe4b9928fdea3eabc99644174e3 : WAPT/icon.png
70a8b8e776639fc7ad0583837d806d77102f75551840a1f56f89470515c4c4dd : java.cfg
9c49e6dd6a4e1a33216cddfa7e8d391228c61d2a1bf07523a9fc9fa801036984 : jre-8u441-windows-i586.exe
1f4e9cb97015f7aed3b98dc8822db3e083589607bcdf75330559ccda125da993 : jre-8u441-windows-x64.exe
269f267746ab8899c1a045da49bae19d668a6b9e13db8f99eef3df1c11bc121b : luti.json
6e743911c2166710dda17b775307bbc3138eeb55a25b8daadc6d749b04d4793b : 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