mac jdk intellij idea configuring configurar change agregar intellij-idea java-8

intellij idea - jdk - Intellij-No se pueden usar las nuevas clases de Java 8-Error: "Uso de API documentado como @since 1.6+.."



intellij java 6 (8)

Archivo> Configuración> Compilación, ejecución, implementación> Compilador Java

Cambie la versión de código de bytes de destino a 1.8 del módulo para el que está trabajando.

Si estás usando Maven

Agregue el complemento del compilador a pom.xml en el nodo del proyecto de nivel superior:

<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build>

Estoy tratando de usar una función java.lang.function.Function en mi base de código java 8, pero sigo recibiendo el siguiente error en Intellij.

Uso de API documentado como @since 1.6+ Esta inspección encuentra todos los usos de los métodos que tienen la etiqueta @since en su documentación. Esto puede ser útil cuando el desarrollo se realiza bajo la versión más reciente del SDK como plataforma de destino para la producción

Parece que tengo la configuración correcta de Proyecto y Compilador

Configuración del proyecto: (Archivo -> Estructura del proyecto)

Project Settings -> Project -> Project SDK = Java 1.8 Project Settings -> Project -> Project Language Level = 8 - Lambdas, Type Annotations etc

Configuración del compilador: (Archivo -> Configuración)

Build, Execution, Deployment -> Compiler -> Java Compiler -> Project Bytecode Version : 1.8 Build, Execution, Deployment -> Compiler -> Java Compiler -> Per module Bytecode Version -> Target Bytecode Version : 1.8

¿Cuál es el problema?


Editó la respuesta basada en el comentario de Bastien Jansen.

Parece que hay otra configuración de proyecto que afecta el nivel del compilador. Una indicación sutil de este problema es cuando su compilador comienza a quejarse de que la versión de Java de origen y destino es diferente de la que especificó mientras compila el código

Warning:java: source value 1.5 is obsolete and will be removed in a future release Warning:java: target value 1.5 is obsolete and will be removed in a future release Warning:java: To suppress warnings about obsolete options, use -Xlint:-options.

Para deshacerte de esto, debes abrir

File -> Project Structure -> Project Settings -> Modules -> "Your Module Name" -> Sources -> Language Level

y cambie eso al nivel deseado, es decir, 1.8 o el nivel de idioma predeterminado del proyecto


En realidad, si está utilizando Maven y las propiedades de su proyecto pom.xml están configuradas correctamente

<project xmlns="...> .... <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties> ... </project

Puede intellij-idea a importar los parámetros de Maven al proyecto intellij-idea : haga clic con el botón derecho en la entrada raíz del proyecto, luego Maven -> Reimport que se encuentra en la parte inferior.


Hay otro lugar que podría estar causando este problema, independientemente de si está utilizando Maven o Gradle.

En la Settings | Editor | Inspections | Java language level migration aids | Usages of API which isn''t available at the configured language level Settings | Editor | Inspections | Java language level migration aids | Usages of API which isn''t available at the configured language level Settings | Editor | Inspections | Java language level migration aids | Usages of API which isn''t available at the configured language level , el valor predeterminado (creo) está establecido en Respecting to project language level settings , pero se puede establecer en Higher than: que ignora la configuración del proyecto.

Lo que significa que si sigue las instrucciones en las otras respuestas y establece el nivel de idioma de su proyecto en, digamos, 8, pero la inspección se establece en Higher than: 7 , IDEA seguirá dando un ajuste.


Lo arreglé de la siguiente manera:

Haga clic derecho en el proyecto -> Abrir configuración del módulo -> Módulos -> Fuentes -> 8 o superior

Y entonces

Si aún encuentra el error y usa maven , debe agregar la configuración de compilación en su pom.xml :

<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build>


Si está utilizando Gradle, no olvide asegurarse de que lo siguiente esté configurado en 1.8 y no en 1.5 (por ejemplo, por alguna extraña razón en Intelij, por defecto es 1.5), así que no importa lo que haga a nivel de proyecto para configurar el compilador nivel de compatibilidad, esta configuración hará que continúe dándole problemas con las características de Java 8 que no reconocería:

version ''1.0-SNAPSHOT'' apply plugin: ''groovy'' apply plugin: ''java'' sourceCompatibility = 1.8


Si está utilizando maven, agregue la siguiente línea en su archivo de configuración pom.xml y luego vuelva a importarlo o compílelo desde maven.

<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.3</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build>

De lo contrario, seleccione el compilador de Java y el Nivel de idioma de la ruta a continuación.

Archivo> Estructura del proyecto> Configuración del proyecto> Módulos> el nombre del módulo> Fuentes> Nivel de idioma> elija el que necesita.

Cambiar el nivel de idioma desde aquí: -


Tal vez su configuración de repositorio tiene propiedades que incluyen la versión del compilador. examinar el archivo settings.xml .

<jdk>1.8</jdk> </activation> <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion> </properties>