Java編譯器002---javac -source/-target選項


源碼:

public class TestSource {
    public static void main(String[] args) {
        List<String> stringList = Arrays.stream(new String[]{"hello", "hi", "how are you", "what?", "hi"})
            .distinct()
            .filter(word -> word.startsWith("h"))
            .sorted(Comparator.reverseOrder())
            .collect(Collectors.toList());
        System.out.println(stringList);
    }
}

-source:

用於指定編譯源碼時使用的JDK版本,例如:javac -source 1.7 TestSource.java 指定使用JDK1.4編譯TestSource.java,

但是TestSource.java中使用了lamba表達式,因此編譯報錯,需要指定JDK版本為1.8;

 -target:

用於指定生成的字節碼文件要運行在哪個JDK版本,如指定target版本為1.8,則運行字節碼文件的JDK版本必須大於等於1.8

編譯時同時使用:

運行使用的JDK版本必須大於等於編譯使用的JDK版本,即-target指定的版本必須大於等於-source,否則編譯會有如下錯誤:

javac: 源發行版 1.8 需要目標發行版 1.8

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM