• 记一次Intellij-IDEA配置JDK1.8,支持Lambda新特性


    • Jdk 1.8支持Lambda新特性,想试试直接在IDEA使用,于是创建一个web项目,着手准备使用时,发现了以下的问题。环境已经中已经配置了jdk1.8环境


       
      图片1

    解决方法

    1. 先打开ideaproject structure配置
       
      图片2
    2. 其次将所有的模块配置成为1.8环境,这样保证它的语法检测不报错,但是编译的时候他还是选择idea的默认配置,接下来更改编译配置
     
    图片3
    1. 进入idea的设置页面,将编译模式改成1.8
     
    图片4

    异常问题

    如果缺少第三部,会出现如下错误

     
    图片5

    FAQ:

    设置完成之后,如果重新启动IDEA时,就会发现所有的设置又重新恢复到默认状态(JDK 1.5)

    原因是:

    Apache Maven Compiler Plugin
    
    The Compiler Plugin is used to compile the sources of your project. Since 3.0, the default compiler is javax.tools.JavaCompiler (if you are using java 1.6) and is used to compile Java sources. If you want to force the plugin using javac, you must configure the plugin option forceJavacCompilerUse.
    
    Also note that at present the default source setting is 1.5 and the default target setting is 1.5, independently of the JDK you run Maven with. If you want to change these defaults, you should set source and target as described in Setting the -source and -target of the Java Compiler.
    

    解释是:

    该插件从3.0版本开始,
    默认编译器是javax.tools.JavaCompiler (前提是JDK 1.6以后);
    如果想使用javac,需要手动设置。
    当前(Version: 3.5.1),
    默认使用JDK 1.5解析和编译源码,
    与运行Maven的JDK版本无关!
    

    PS:

        <project>
          [...]
          <build>
            [...]
            <plugins>
              <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.5.1</version>
                <configuration>
                  <source>1.8</source>
                  <target>1.8</target>
                </configuration>
              </plugin>
            </plugins>
            [...]
          </build>
          [...]
        </project>
    

    解决方法:

    pom.xml中指定compiler的版本

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

    当然还有一个简单写法

    <properties>
      <maven.compiler.source>1.8</maven.compiler.source>
      <maven.compiler.target>1.8</maven.compiler.target>
    </properties>
    
     
    • Jdk 1.8支持Lambda新特性,想试试直接在IDEA使用,于是创建一个web项目,着手准备使用时,发现了以下的问题。环境已经中已经配置了jdk1.8环境


       
      图片1

    解决方法

    1. 先打开ideaproject structure配置
       
      图片2
    2. 其次将所有的模块配置成为1.8环境,这样保证它的语法检测不报错,但是编译的时候他还是选择idea的默认配置,接下来更改编译配置
     
    图片3
    1. 进入idea的设置页面,将编译模式改成1.8
     
    图片4

    异常问题

    如果缺少第三部,会出现如下错误

     
    图片5

    FAQ:

    设置完成之后,如果重新启动IDEA时,就会发现所有的设置又重新恢复到默认状态(JDK 1.5)

    原因是:

    Apache Maven Compiler Plugin
    
    The Compiler Plugin is used to compile the sources of your project. Since 3.0, the default compiler is javax.tools.JavaCompiler (if you are using java 1.6) and is used to compile Java sources. If you want to force the plugin using javac, you must configure the plugin option forceJavacCompilerUse.
    
    Also note that at present the default source setting is 1.5 and the default target setting is 1.5, independently of the JDK you run Maven with. If you want to change these defaults, you should set source and target as described in Setting the -source and -target of the Java Compiler.
    

    解释是:

    该插件从3.0版本开始,
    默认编译器是javax.tools.JavaCompiler (前提是JDK 1.6以后);
    如果想使用javac,需要手动设置。
    当前(Version: 3.5.1),
    默认使用JDK 1.5解析和编译源码,
    与运行Maven的JDK版本无关!
    

    PS:

        <project>
          [...]
          <build>
            [...]
            <plugins>
              <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.5.1</version>
                <configuration>
                  <source>1.8</source>
                  <target>1.8</target>
                </configuration>
              </plugin>
            </plugins>
            [...]
          </build>
          [...]
        </project>
    

    解决方法:

    pom.xml中指定compiler的版本

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

    当然还有一个简单写法

    <properties>
      <maven.compiler.source>1.8</maven.compiler.source>
      <maven.compiler.target>1.8</maven.compiler.target>
    </properties>
    
     
     
    1人点赞
     
     


    作者:FantasyYoung
    链接:https://www.jianshu.com/p/dfe3e45612ad
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
     
    1人点赞
     
     


    作者:FantasyYoung
    链接:https://www.jianshu.com/p/dfe3e45612ad
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 相关阅读:
    VS2013
    有了门面,程序会更加体面!- pos软件基于三层架构 -09
    无熟人难办事?- 闲聊设计模式-迪米特法则
    三层架构,分层开发
    Filezilla 错误
    归档和压缩
    在Linux系统下用dd命令制作ISO镜像U盘启动盘
    脚本语言
    node.js知识点提取
    npm cnpm
  • 原文地址:https://www.cnblogs.com/wangfl/p/11802166.html
Copyright © 2020-2023  润新知