14

In the preferences for IntelliJ 2018.1 (Build, Execution, Deployment > Compiler > Java Compiler) is an checkbox labeled:

Use '--release' option for cross-compilation (Java 9 and later)

I found for information when doing an internet search. The "?" help icon give a 404 error when clicked.

What is the purpose/function of this option?

enter image description here

Naman
  • 21,685
  • 24
  • 196
  • 332
Basil Bourque
  • 262,936
  • 84
  • 758
  • 1,028
  • This Q/A is as well suited for other IDE's such as Eclipse and of course - since it is an official compiler option - for the JDK (just adding some keywords for search engines here). – Maarten Bodewes Nov 22 '21 at 12:20

1 Answers1

14

The help section can be found here:

By default, this option is selected. IntelliJ IDEA deduces from project settings when the cross-compilation is needed and automatically applies the --release compiler option for Java 9.

What is the --release option? It is a new command-line option, defined in JEP 247: Compile for Older Platform Versions.

A new command-line option, --release, is defined, which automatically configures the compiler to produce class files that will link against an implementation of the given platform version.

Discussed in this good answer here.

Also check IDEA-184333 for the background why this option was added in the IDE. In short, some users need to specify only -source and -target versions for their projects without also setting the -bootclasspath option.

Basil Bourque
  • 262,936
  • 84
  • 758
  • 1,028
CrazyCoder
  • 371,688
  • 155
  • 943
  • 850