簡體   English   中英

IntelliJ IDEA 2016.3無法使用Java 7進行編譯

[英]IntelliJ IDEA 2016.3 unable to compile with java 7

  • 我最近更新到了IntelliJ IDEA 2016.3,我剛剛注意到,只要我有一個選擇了Java 7 SDK的項目,IntelliJ就會使用Java 1.8.0_112-release(必須是與IntelliJ捆綁在一起的編譯器)編譯該項目。自己安裝)。

  • 如果選擇1.8.0_112發行版以外的Java 8 SDK,則IntelliJ會使用該編譯器進行編譯。

  • 如果我選擇了Java 7 SDK並在項目中運行main方法,則IntelliJ使用該Java 7 SDK版本運行,因此問題似乎僅與編譯器有關。

  • 我嘗試重新安裝所有Java安裝。

  • 當我更改SDK時,通常只更改Project Structure -> Project -> Project SDK ,但我還要驗證語言級別是否正確以及Project Structure -> Modules -> Dependencies -> Module SDK是否正確。

  • 所有設置均為以下默認設置:

    • Settings -> Build, Execution, Deployment -> Compiler/Java Compiler
  • 在我看來,IntelliJ IDEA 2016.3無法使用低於Java 8的Java編譯器,但我的谷歌搜索嘗試無法確認這一點。

  • 我還可以提到,我還沒有嘗試過的唯一事情是硬卸載IntelliJ,在那里我所有的設置也都被清除了。 已嘗試進行無提示卸載。

  • 如果我嘗試使用Java 7 SDK編譯新的Hello World項目,則這是“消息”選項卡中的輸出: Information:Using javac 1.8.0_112-release to compile java sources 但是,如果我將項目SDK設置為Java 8 SDK,則這是“消息”選項卡中的輸出: Information:Using javac 1.8.0_45 to compile java sources

  • 嘗試將Settings -> Build, Execution, Deployment -> Compiler -> Java Compiler -> Project bytecode version為1.7,沒有任何效果。

  • File -> Other Settings -> Default Project Structure -> Project SDK and Project language level設置為Java 7 SDK。 消息選項卡仍顯示: Information:Using javac 1.8.0_112-release to compile java sources

有沒有其他人經歷過這種情況並知道導致這種現象的原因?

Apparantley這是由在的IntelliJ一個問題,因為在規定造成這個問題。

自IntelliJ IDEA版本2016.3.1起已解決,我復制並粘貼了尤金·朱拉夫列夫( Eugene Zhuravlev)在Youtrack問題中的評論,以解釋其解決方法:

為Javac引入了新的編譯器選項: 設置| 構建,執行,部署| 編譯器 Java編譯器| “盡可能使用來自模塊目標JDK的編譯器”。 默認值為“ on”。 啟用此屬性並且與模塊關聯的JDK與內部版本的JDK不同時,內部版本將更喜歡使用來自相關JDK的javac進行編譯,而不是使用運行於其上的JDK的編譯器。

您需要設置兩件事:

CTRL + ALT + SHIFT + S- >項目-> Project SDK

CTRL + SHIFT + A- >鍵入“ Java編譯器”->目標字節碼版本

Project StructureDefault Project Structure之間存在區別(后者用於新創建/簽出的項目)。

Default Project Structure隱藏在“ File -> Other Settings 在那里,您將擁有Project SDKProject Language Level

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM