“Javac选项source和target的作用”的版本间的差异

来自姬鸿昌的知识库
跳到导航 跳到搜索
 
(未显示同一用户的3个中间版本)
第7行: 第7行:
 
         <maven.compiler.target>8</maven.compiler.target>
 
         <maven.compiler.target>8</maven.compiler.target>
 
     </properties>
 
     </properties>
 +
</syntaxhighlight>
 +
 +
 +
 +
 +
 +
=== 举例 ===
 +
使用 jdk 8 编译应用了 lambda 表达式的 java 8 语法的源代码文件,应用“javac -source 7”就会编译失败:<syntaxhighlight lang="java">
 +
public class Test3 {
 +
 +
    public static void main(String[] args) {
 +
 +
        new Thread(()->{
 +
            System.out.println(1);
 +
        }).start;
 +
       
 +
    }
 +
 +
}
 +
</syntaxhighlight><syntaxhighlight lang="powershell">
 +
E:\record\2023\2\1>javac -source 1.7 Test3.java
 +
警告: [options] 未与 -source 7 一起设置引导类路径
 +
Test3.java:5: 错误: -source 7 中不支持 lambda 表达式
 +
        new Thread(()->{
 +
                    ^
 +
  (请使用 -source 8 或更高版本以启用 lambda 表达式)
 +
Test3.java:7: 错误: 不是语句
 +
        }).start;
 +
          ^
 +
2 个错误
 +
1 个警告
 +
 
</syntaxhighlight>
 
</syntaxhighlight>

2023年2月1日 (三) 11:17的最新版本

参考

https://blog.csdn.net/gao_zhennan/article/details/124232142

同 maven 中的

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>



举例

使用 jdk 8 编译应用了 lambda 表达式的 java 8 语法的源代码文件,应用“javac -source 7”就会编译失败:

public class Test3 {

    public static void main(String[] args) {

        new Thread(()->{
            System.out.println(1);
        }).start;
        
    }

}
E:\record\2023\2\1>javac -source 1.7 Test3.java
警告: [options] 未与 -source 7 一起设置引导类路径
Test3.java:5: 错误: -source 7 中不支持 lambda 表达式
        new Thread(()->{
                     ^
  (请使用 -source 8 或更高版本以启用 lambda 表达式)
Test3.java:7: 错误: 不是语句
        }).start;
          ^
2 个错误
1 个警告