# Switching to V2
## Java distribution
The major breaking change in V2 is the new mandatory `distribution` input. This field should be specified with one of supported distributions. See [Supported distributions](../README.md#Supported-distributions) for a list of available options.  
Use the `zulu` keyword if you would like to continue using the same distribution as in V1.
```yaml
steps:
  - uses: actions/checkout@v2
  - uses: actions/setup-java@v2
    with:
      distribution: 'zulu'
      java-version: '11'
      java-package: jdk # optional (jdk or jre) - defaults to jdk
  - run: java -cp java HelloWorldApp
```

**General recommendation** — configure CI with the same distribution that is used on your local dev machine.

## Installing custom Java distribution from local file
Since the `distribution` input is required in V2, you should specify it using `jdkfile` to continue installing Java from a local file on the runner
```yaml
steps:
  - run: |
      download_url="https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.10%2B9/OpenJDK11U-jdk_x64_linux_hotspot_11.0.10_9.tar.gz"
      wget -O $RUNNER_TEMP/java_package.tar.gz $download_url
  - uses: actions/setup-java@v2
    with:
      distribution: 'jdkfile'
      jdkFile: ${{ runner.temp }}/java_package.tar.gz
      java-version: '11.0.0'
      architecture: x64
```

## Dropping legacy Java version syntax 1.x
V1 supported legacy Java syntax such as `1.8` (same as `8`) and `1.8.0.212` (same as `8.0.212`). 
V2 dropped support for legacy syntax so workflows should be updated accordingly. 
