Notices: This section not yet converted to new layout. Download stats are rolling back out.

Java SE


Package test results are passing.

This package was approved by moderator gep13 on 2/21/2019.

By default this package installs JDK with source codes(zip).

If you don't want to install source codes

choco install jdk11 -params "source=false"

If you want auto update

choco install jdk11 -params "static=false"

If you want to specfiy install directory (you need \\ for escape)

choco install jdk11 -params 'installdir=c:\\java11'

To install Java SE, run the following command from the command line or from PowerShell:

C:\> choco install jdk11

To upgrade Java SE, run the following command from the command line or from PowerShell:

C:\> choco upgrade jdk11


  • tools\chocolateyInstall.ps1 Show
    $script_path = $(Split-Path -parent $MyInvocation.MyCommand.Definition)
    $common = $(Join-Path $script_path "common.ps1")
    . $common
    #installs jdk11
    try {
        $params = "$env:chocolateyPackageParameters" 
        $params = (ConvertFrom-StringData $params.Replace(";", "`n")) 
        chocolatey-install $params
    } catch {
        if ($_.Exception.InnerException) {
            $msg = $_.Exception.InnerException.Message
        } else {
            $msg = $_.Exception.Message
  • tools\chocolateyUninstall.ps1 Show
    $script_path = $(Split-Path -parent $MyInvocation.MyCommand.Definition)
    $common = $(Join-Path $script_path "common.ps1")
    . $common
    function Uninstall-ChocolateyPath {
      [string] $pathToUninstall,
      [System.EnvironmentVariableTarget] $pathType = [System.EnvironmentVariableTarget]::User
      Write-Debug "Running 'Uninstall-ChocolateyPath' with pathToUninstall:`'$pathToUninstall`'";
      #get the PATH variable
      $envPath = $env:PATH
      if ($envPath.ToLower().Contains($pathToUninstall.ToLower()))
        Write-Host "PATH environment variable has $pathToUninstall in it. Removing..."
        $actualPath = [Environment]::GetEnvironmentVariable('Path', $pathType)
        $statementTerminator = ";"
        # remove $pathToUninstall
        $actualPath = (($actualPath -split $statementTerminator) -ne $pathToUninstall) -join $statementTerminator
        if ($pathType -eq [System.EnvironmentVariableTarget]::Machine) {
          $psArgs = "[Environment]::SetEnvironmentVariable('Path',`'$actualPath`', `'$pathType`')"
          Start-ChocolateyProcessAsAdmin "$psArgs"
        } else {
          [Environment]::SetEnvironmentVariable('Path', $actualPath, $pathType)
        #add it to the local path as well so users will be off and running
        $env:Path = $actualPath
    $java_bin = get-java-bin
    Uninstall-ChocolateyPath $java_bin 'Machine'
    if ([Environment]::GetEnvironmentVariable('CLASSPATH','Machine') -eq '.;') {
        Install-ChocolateyEnvironmentVariable 'CLASSPATH' $null 'Machine'
    Install-ChocolateyEnvironmentVariable 'JAVA_HOME' $null 'Machine'
  • tools\common.ps1 Show
    $jdk_version = '11.0.2'
    $build = '7'
    $id = "f51449fcd52f4d52b93a989c5c56ed3c"
    $script_path = $(Split-Path -parent $MyInvocation.MyCommand.Definition)
    function has_file($filename) {
        return Test-Path $filename
    function get-programfilesdir() {
        $programFiles = (Get-Item "Env:ProgramFiles").Value
        return $programFiles
    function download-from-oracle($url, $output_filename) {
        if (-not (has_file($output_fileName))) {
            Write-Host  "Downloading JDK from $url"
            try {
                [System.Net.ServicePointManager]::ServerCertificateValidationCallback = { $true }
                $client = New-Object Net.WebClient
                $dummy = $client.Headers.Add('Cookie', 'gpw_e24=; oraclelicense=accept-securebackup-cookie')
                $defaultCreds = [System.Net.CredentialCache]::DefaultCredentials
                if ($defaultCreds -ne $null) {
                    $client.Credentials = $defaultCreds
                # Copy from
                # check if a proxy is required
                $explicitProxy = $env:chocolateyProxyLocation
                $explicitProxyUser = $env:chocolateyProxyUser
                $explicitProxyPassword = $env:chocolateyProxyPassword
                if ($explicitProxy -ne $null) {
                    # explicit proxy
                  $proxy = New-Object System.Net.WebProxy($explicitProxy, $true)
                  if ($explicitProxyPassword -ne $null) {
                      $passwd = ConvertTo-SecureString $explicitProxyPassword -AsPlainText -Force
                      $proxy.Credentials = New-Object System.Management.Automation.PSCredential ($explicitProxyUser, $passwd)
                  Write-Host "Using explicit proxy server '$explicitProxy'."
                    $client.Proxy = $proxy
                } elseif (!$client.Proxy.IsBypassed($url)) {
                  # system proxy (pass through)
                    $creds = [net.CredentialCache]::DefaultCredentials
                    if ($creds -eq $null) {
                        Write-Debug "Default credentials were null. Attempting backup method"
                        $cred = get-credential
                        $creds = $cred.GetNetworkCredential();
                    $proxyaddress = $client.Proxy.GetProxy($url).Authority
                    Write-Host "Using system proxy server '$proxyaddress'."
                    $proxy = New-Object System.Net.WebProxy($proxyaddress)
                    $proxy.Credentials = $creds
                    $client.Proxy = $proxy
               $dummy = $client.DownloadFile($url, $output_filename)
            } finally {
                [System.Net.ServicePointManager]::ServerCertificateValidationCallback = $null
    function download-jdk-file($url, $output_filename) {
        $dummy = download-from-oracle $url $output_filename
    function download-jdk() {
        $filename = "jdk-" + $jdk_version + "_windows-x64_bin.exe"
        $url = "$jdk_version+$build/$id/$filename"
        $output_filename = Join-Path $script_path $filename
        $dummy = download-jdk-file $url $output_filename
        return $output_filename
    function get-java-home() {
        if (Test-Path (Join-Path $script_path "installdir.txt")) {
            return Get-Content (Join-Path $script_path "installdir.txt")
        $program_files = get-programfilesdir
        return Join-Path $program_files ("Java\jdk-" + $jdk_version)
    function get-java-bin() {
        $java_home = get-java-home
        return Join-Path $java_home 'bin'
    function chocolatey-install($params) {
        $jdk_file = download-jdk
        $java_home = get-java-home
        $java_bin = get-java-bin
        $install_options = '/s '
        if ($params.static -ne $false) {
            $install_options += 'STATIC=1 '
        if ($params.installdir -ne $null) {
            $install_options += 'INSTALLDIR=' + $params.installdir + ' '
        $install_options += 'ADDLOCAL="ToolsFeature'
        if ($params.source -ne $false) {
            $install_options += ',SourceFeature'
        $install_options += '"'
        Install-ChocolateyInstallPackage 'jdk11' 'exe' $install_options $jdk_file          
    function set-path() {
        $java_home = get-java-home
        $java_bin = get-java-bin
        Install-ChocolateyPath $java_bin 'Machine'             
        if ([Environment]::GetEnvironmentVariable('CLASSPATH','Machine') -eq $null) {
            Install-ChocolateyEnvironmentVariable 'CLASSPATH' '.;' 'Machine'
        Install-ChocolateyEnvironmentVariable 'JAVA_HOME' $java_home 'Machine'
    function out-installdir($params) {
        if ($params.installdir -ne $null) {
            Out-File -InputObject $params.installdir -FilePath (Join-Path $script_path "installdir.txt")

Virus Scan Results

In cases where actual malware is found, the packages are subject to removal. Software sometimes has false positives. Moderators do not necessarily validate the safety of the underlying software, only that a package retrieves software from the official distribution point and/or validate embedded software against official distribution point (where distribution rights allow redistribution).

Chocolatey Pro provides runtime protection from possible malware.


This package has no dependencies.

Package Maintainer(s)

Software Author(s)

  • Sun Microsystems/Oracle Corporation


Release Notes

Java SE Development Kit 11.0.2


Version History

Version Downloads Last updated Status
Java SE 11.0.1 6007 Wednesday, October 17, 2018 approved
Java SE 11.0 1098 Wednesday, September 26, 2018 approved

Discussion for the Java SE Package

Ground rules:

  • This discussion is only about Java SE and the Java SE package. If you have feedback for Chocolatey, please contact the google group.
  • This discussion will carry over multiple versions. If you have a comment about a particular version, please note that in your comments.
  • The maintainers of this Chocolatey Package will be notified about new comments that are posted to this Disqus thread, however, it is NOT a guarantee that you will get a response. If you do not hear back from the maintainers after posting a message below, please follow up by using the link on the left side of this page or follow this link to contact maintainers. If you still hear nothing back, please follow the package triage process.
  • Tell us what you love about the package or Java SE, or tell us what needs improvement.
  • Share your experiences with the package, or extra configuration or gotchas that you've found.
  • If you use a url, the comment will be flagged for moderation until you've been whitelisted. Disqus moderated comments are approved on a weekly schedule if not sooner. It could take between 1-5 days for your comment to show up.

comments powered by Disqus uses cookies to enhance the user experience of the site.