[英]How to compile with Java 11 target Java 1.8 in IntelliJ
我正在嘗試使用JDK 11編譯,但是在IntelliJ中使用Java 1.8。 我配置了:
我收到一堆編譯錯誤,說內部包不存在。 --add-exports
對於--target 1.8
無效,因此無效。
唯一可行的方法是將Project SDK設置回Java 1.8(當嘗試使用Java 11運行時會導致其他問題,但這是另一個問題)。
是否可以使用JDK 11編譯並在IntelliJ中定位Java 1.8?
還有其他相關的問題似乎有效,但不是來自IntelliJ:
遺憾的是,如果使用--release N
選項進行編譯,則無法使用內部API。 這在JEP 247中描述:
定義了一個新的命令行選項--release,它自動配置編譯器以生成將鏈接到給定平台版本的實現的類文件。 --release N大致相當於:
對於N <9:-source N -target N -bootclasspath <recorded-APIs-from-N>,
對於N> = 9:-source N -target N --system <recorded-APIs-from-N>。
然后是主段落:
對於N <9,記錄的API由javac的JDK N的默認bootclasspath上的公共 API組成。
我同意這實際上是一個很大的限制。 你甚至不能使用sun.misc.Unsafe,它一直是OpenJDK的關鍵部分。
所以,你的問題與IntelliJ IDEA無關。 這是Java平台的一個限制。
你有兩種方式:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.