鍍金池/ 教程/ C++/ IntelliJ IDEA 編譯方式介紹
介紹
IntelliJ IDEA 界面介紹
最特殊的快捷鍵 Alt + Enter 介紹
IntelliJ IDEA 配合 Maven 的一些技巧
文件代碼模板的使用
常見(jiàn)文件類型的圖標(biāo)介紹
IntelliJ IDEA 推薦設(shè)置講解
Maven 項(xiàng)目介紹
IntelliJ IDEA 相關(guān)核心文件和目錄介紹
Debug 介紹
IntelliJ IDEA 常用設(shè)置講解 - 2
IntelliJ IDEA 插件開(kāi)發(fā)視頻教程
IntelliJ IDEA 緩存和索引介紹和清理方法
IntelliJ IDEA 主題、字體、編輯區(qū)主題、文件編碼修改、亂碼問(wèn)題
Maven 的單模塊 Spring Boot 項(xiàng)目
IntelliJ IDEA 遠(yuǎn)程調(diào)試 Tomcat
插件的使用
IntelliJ IDEA 編譯方式介紹
IntelliJ IDEA For Mac 快捷鍵
IntelliJ IDEA 常用設(shè)置講解 - 1
首次運(yùn)行
Ubuntu 系統(tǒng)下安裝 IntelliJ IDEA
數(shù)據(jù)庫(kù)管理工具介紹
重構(gòu)講解
從 Windows 過(guò)度到 Mac 必備快捷鍵對(duì)照表
Windows 系統(tǒng)下安裝 IntelliJ IDEA
Maven 的單模塊 / 多模塊之 Spring MVC + Spring + Spring Data JPA 項(xiàng)目
版本控制的使用
IntelliJ IDEA 的 Java 熱部署插件 JRebel 安裝及使用
IntelliJ IDEA 常用設(shè)置講解 - 3
Emmet 的使用
Postfix Completion 的使用
Mac 系統(tǒng)下安裝 IntelliJ IDEA
本系列教程結(jié)束
實(shí)時(shí)代碼模板的使用
快捷鍵
IntelliJ IDEA 項(xiàng)目相關(guān)的幾個(gè)重要概念介紹
安裝總結(jié)
Maven 的單模塊 / 多模塊之 Spring MVC + Spring + Mybatis 項(xiàng)目講解
關(guān)于
Eclipse 的 Java Web 項(xiàng)目環(huán)境搭建
IntelliJ IDEA 常用設(shè)置講解 - 4
Hello World 項(xiàng)目創(chuàng)建與項(xiàng)目配置文件介紹

IntelliJ IDEA 編譯方式介紹

編譯方式介紹

相比較于 Eclipse 的實(shí)時(shí)自動(dòng)編譯,IntelliJ IDEA 的編譯更加手動(dòng)化,雖然 IntelliJ IDEA 也支持通過(guò)設(shè)置開(kāi)啟實(shí)時(shí)編譯,但是不建議,因?yàn)樘假Y源了。IntelliJ IDEA 編譯方式除了手工點(diǎn)擊編譯按鈕進(jìn)行編譯之外,還有就是在容器運(yùn)行之前配置上一個(gè)編譯事件,先編譯后運(yùn)行。默認(rèn)下 IntelliJ IDEA 也都是這樣的設(shè)置,所以實(shí)際開(kāi)發(fā)中你也不用太注意編譯這件事。雖然 IntelliJ IDEA 沒(méi)有實(shí)時(shí)編譯,但是對(duì)于代碼檢查完全是沒(méi)有影響。但是多個(gè)類之間的關(guān)聯(lián)關(guān)系還是要等 Make 或 Rebuild 觸發(fā)的時(shí)候才會(huì)做相關(guān)檢查的。

在 IntelliJ IDEA 里,編譯方式一共有三種:

  • Compile:對(duì)選定的目標(biāo)(Java 類文件),進(jìn)行強(qiáng)制性編譯,不管目標(biāo)是否是被修改過(guò)。注:2018版操作為Recompile。
  • Rebuild:對(duì)選定的目標(biāo)(Project),進(jìn)行強(qiáng)制性編譯,不管目標(biāo)是否是被修改過(guò),由于 Rebuild 的目標(biāo)只有 Project,所以 Rebuild 每次花的時(shí)間會(huì)比較長(zhǎng)。
  • Make:使用最多的編譯操作。對(duì)選定的目標(biāo)(Project 或 Module)進(jìn)行編譯,但只編譯有修改過(guò)的文件,沒(méi)有修改過(guò)的文件不會(huì)編譯,這樣平時(shí)開(kāi)發(fā)大型項(xiàng)目才不會(huì)浪費(fèi)時(shí)間在編譯過(guò)程中。注:2018版操作為Build。

編譯觸發(fā)按鈕

http://wiki.jikexueyuan.com/project/intellij-idea-tutorial/images/xiii-a-make-introduce-1.jpg" alt="IntelliJ IDEA 編譯觸發(fā)按鈕" />

  • 如上圖標(biāo)注 1 所示,Make 的操作有:Make Project、Make Module
  • 如上圖標(biāo)注 2 所示,Compile 的操作有:Compile 指定類
  • 如上圖標(biāo)注 3 所示,Rebuild 的操作有:Rebuild Project

運(yùn)行之前的編譯

http://wiki.jikexueyuan.com/project/intellij-idea-tutorial/images/xiii-b-befour-launch-1.jpg" alt="IntelliJ IDEA 運(yùn)行之前的編譯" />

  • 如上圖所示,IntelliJ IDEA 默認(rèn)在運(yùn)行 JUnit 之前會(huì)先進(jìn)行 Make 操作。

http://wiki.jikexueyuan.com/project/intellij-idea-tutorial/images/xiii-b-befour-launch-2.jpg" alt="IntelliJ IDEA 運(yùn)行之前的編譯" />

  • 如上圖所示,IntelliJ IDEA 默認(rèn)在運(yùn)行 tomcat 之前會(huì)先進(jìn)行 Make 操作。

編譯器的設(shè)置和選擇

http://wiki.jikexueyuan.com/project/intellij-idea-tutorial/images/xiii-c-compiler-setting-1.jpg" alt="編譯器的設(shè)置和選擇" />

  • 上圖標(biāo)注 1 所示,也是我們本文前面講的,IntelliJ IDEA 是支持自動(dòng)編譯的,默認(rèn)是不開(kāi)啟的,也建議不用開(kāi)啟,原因前面已經(jīng)說(shuō)了。
  • 上圖標(biāo)注 2 所示,設(shè)置編譯 heap 大小,默認(rèn)是 700,建議使用 64 位的用戶,在內(nèi)存足夠的情況下,建議改為 1500 或以上。如果你在編譯的時(shí)候出錯(cuò),報(bào):OutOfMemoryError,一般也是要來(lái)改這個(gè)地方。
  • 上圖標(biāo)注 3 所示,還可以設(shè)置編譯時(shí)的 VM 參數(shù),這個(gè)你可以根據(jù)需求進(jìn)行設(shè)置,一般人是用不上的。

http://wiki.jikexueyuan.com/project/intellij-idea-tutorial/images/xiii-c-compiler-setting-2.jpg" alt="編譯器的設(shè)置和選擇" />

  • 如上圖標(biāo)注 1 所示,可以添加目錄 或 文件進(jìn)行編譯排除。
  • 在項(xiàng)目中,如果有任何一個(gè)可編譯的文件無(wú)法編譯通過(guò),則 IntelliJ IDEA 是無(wú)法運(yùn)行起來(lái)的,必須等你全部問(wèn)題解決,編譯通過(guò)之后才可運(yùn)行。但是可能開(kāi)發(fā)過(guò)程中,某一個(gè)包目錄的文件編譯無(wú)法通過(guò),但是我們又不急著改,那我們就可以考慮把該包加入到排除編譯列表中,則項(xiàng)目就可以運(yùn)行起來(lái)。

http://wiki.jikexueyuan.com/project/intellij-idea-tutorial/images/xiii-c-compiler-setting-3.gif" alt="編譯器的設(shè)置和選擇" />

  • 如上圖動(dòng)態(tài) Gif 所示,IntelliJ IDEA 支持常見(jiàn)的幾種編譯器:Javac、Eclipse、Ajc 等。默認(rèn)是 Javac,也推薦使用 Javac。
  • Project bytecode version 針對(duì)項(xiàng)目字節(jié)碼編譯版本,一般選擇的是當(dāng)前項(xiàng)目主 JDK 的版本。
  • Per-module bytecode version 可以針對(duì) Project 下各個(gè) Module 的特殊需求單獨(dú)設(shè)置不同的 bytecode version,前提是電腦上必須有安裝對(duì)應(yīng)的 JDK 版本。