IntelliJ IDEA

jetbrain開發的IDE,用於Java、Groovy、Scala等的開發:php

  • Ultimate Edition:商業版本,功能完善,免費試用30天;
  • Community Edition:社區免費版本,功能有所精減,開源且license是Apache 2.0,可用於google android開發;

工具下載最新版本信息html

version:2017.1
build:IC-171.3780.107java

具體參考:IntelliJ IDEA 官網android

  • 智能補全功能、快捷鍵功能;
  • Java開發經常使用插件均已集成,maven、git、svn、tomcat、jetty、jrebel、Gradle等;

IntelliJ IDEA是一個屢獲殊榮的Java和Groovy開發環境,認爲是當前Java開發效率最快的IDE工具。git

The most intelligent IDE for Java platform.github

安裝配置apache

IDEA的環境配置、插件、工具等均在:FIle | Settings | ... 
windows

注意,Scala SDK的版本號須要IntelliJ IDEA的支持;Scala Plugins的版本號必須跟本機IntelliJ IDEA的版本號(build.txt)匹配,下載的.zip格式的Scala插件無需解壓、放到Intellij安裝的plugins目錄下,點擊 Install plugin from disk... 直接安裝zip文件便可(同時最好將其解壓到 IDEA 的 /plugin 目錄下)。tomcat

  • IDE: IntelliJ IDEA Community Edition 2017.1.exe
  • Java SDK: jdk-8u101-windows-x64.zip
  • Scala SDK: scala-2.12.1.msi/zip
  • Scala Plugins: scala-intellij-bin-2017.1.15.zip
  • Intellij IDEA 已集成 maven 插件

或者下載idea的2019版本:http://www.javashuo.com/article/p-pmumexdk-kc.htmlintellij-idea

個性化設置,在 File | Settings | ... 下:

  • 顯示工具條:菜單 | View | ToolBar,選中
  • 顯示行號:... | Editor | General | Appearance | show line numbers
  • 註釋不頂格:Code Style | Java | Code Generation -> Comment Code
  • 字體、代碼風格設置:... | Editor | General | Colors & Fonts,參考:http://www.phperz.com/article/15/0923/159059.html
    •  UI界面字體
    •  代碼編輯區字體
  • 基於Sublime主題設置:不一樣的monokai主題的jar包,IDEA Color Themes
  • 禁止IDEA自動從新打開上次的項目:... | Appearance & Behavior | System Settings | Reopen last project on startup
  • 打開多個IDEA窗口:... | Appearance & Behavior | System Settings | Open project in new window,而後File–Reopen便可

注意,Settings is for now, Other Settings is for all同時,Platform Settings中也是全局配置。

運行調試

其餘快捷鍵

註釋:單行(ctrl + /)、多行(ctrl + shift + /)
ALT+Enter:智能提示
Shift+F6:批量更改Refactor
ALT+F7:相似於EClipse的 show call history,查看被誰調用
Ctrl+B:導航至定義位置
Ctrl+P/Q:方法參數提示顯示
Alt+Insert:代碼自動生成,如生成對象的 set / get 方法,構造函數,toString() 等 
Ctrl + Alt + L:格式化代碼,能夠對當前文件和整個包目錄使用
Ctrl + Alt + 左方向鍵:退回到上一個操做的地方 (必備)
Ctrl + Alt + 右方向鍵:前進到上一個操做的地方 (必備)

其餘快捷鍵信息,參見:http://www.javashuo.com/article/p-rgzjwtcp-ku.html

關於Debug調試的基本使用,參見:http://www.javashuo.com/article/p-dafpexsw-kr.html

基本使用

IDEA的工做空間叫 Project ,一個 Project下提倡放一個項目。

.idea文件夾和 ProjectName.iml是 IDEA創建的輔助文件夾和文件,相似於 Eclipse工做空間下創建的 .settings文件夾和 .classpath 、.project文件。

在 IntelliJ IDEA裏面 「new Project」 就至關於 Eclipse 的 「workspace」,而 「new Module」 纔是建立一個工程項目。

關於基礎知識,參見:JaJian' Blogs - IntelliJ Idea

(1)Java 程序

  • File | New | Project | Java ...,新建項目工程;
  • 文件夾 src 右鍵,New | Java Class (Kind : Class) ...,添加 .java 代碼;

(2)Scala 程序

  • File | New | Project | Scala ...,新建項目工程;
  • 文件夾 src 右鍵,New | Scala Class (Kind : Object) ...,添加 .scala 代碼;

參考:Instruction:Your first lines of code | Scala

Scala 默認爲每一個源文件加入以下引用

  • import java.lang._
  • import scala._
  • import Predef._

編譯器 scalac 將 .scala 源文件編譯成 .class 文件,Java虛擬機加載並運行 .class 文件。關於 FileName.scala 編譯生成的 FileName.class 和 FileName$.class 文件的理解,參考:scala編譯的class字節碼實現。其中,以$結尾的類就是所謂的虛構類(Synthetic Class)。

源碼中的孤立對象A中的字段和方法,都被編譯成以孤立對象A的名字命名的 A.class 中的靜態方法, 這些靜態方法都會經過單例的虛構類 A$.class 的實例化對象訪問相應的實例方法。虛構類是傳統意義上的單例模式,而且在類初始化時就建立惟一的對象。

  • 源碼中單例對象的全部字段和方法都會在虛構類中有相對應的成員
  • 虛構類中的信息只和單例對象有關,單例對象的伴生類不會影響虛構類中的內容

(3)Java + Scala 程序

IDEA 支持 Java 和 Scala 代碼互操做。

關於利用 Maven 構建工程項目的問題:利用IntelliJ IDEA與Maven開始你的Scala之旅

Maven 項目最重要三個參數的設置頁面,這三個參數分別:

GroupId,  ArtifactId, Version

利用maven+plugin方式構建 scala應用,.java能夠與 .scala在一個項目中混合使用。推薦目錄結構:

遇到的問題

Error:scalac: Error: object VolatileLongRef does not have a member create

這是由於 scala version mismatch problem: XxxRef.create was added from Scala 2.11,統一開發環境和系統的scala版本便可。

IDEA 中提示:Warning:java: 源值1.5已過期, 將在將來全部發行版中刪除

IDEA 中提示:Warning:java: 目標值1.5已過期, 將在將來全部發行版中刪除

這是由於 IDEA 默認把項目的源代碼版本設置爲 jdk1.5,目標代碼設置爲 jdk1.5,需設置爲本地 jdk 版本號。

在項目 pom.xml 文件中添加:

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

或者修改 Maven 的 Settings.xml 文件添加以下內容:

<profile>
	<id>jdk-1.8</id>
	<activation>
		<activeByDefault>true</activeByDefault>
		<jdk>1.8</jdk>
	</activation>
	<properties>
		<maven.compiler.source>1.8</maven.compiler.source>
		<maven.compiler.target>1.8</maven.compiler.target>
		<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion> 
	</properties>
</profile>

其中,Settings.xml 文件在 Maven 插件的安裝路徑。

文件修改後,IDEA會在右上角提示 "Enable Auto-Import",點擊會自動引入jar,以後IDEA將在源碼jdk版本、目標jdk版本使用Maven中配置的jdk版本。

java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.

這是 Hadoop 環境變量的配置問題,解決方法:

Hadoop_Home:Hadoop 解壓路徑
Path:%Path%;%Hadoop_Home%\bin

或者,直接在程序代碼中添加

System.setProperty("hadoop.home.dir", "Hadoop解壓路徑");

若是 Hadoop_Home 爲空,必然會引發上述問題。具體參考:http://www.cnblogs.com/hyl8218/p/5492450.html

Hadoop "Unable to load native-hadoop library for your platform" warning

這只是一個 Warning,並不會影響 Hadoop 的功能。Compiled Version 的問題,用 idea64.exe 打開從新編譯便可。

具體參考:http://stackoverflow.com/questions/19943766

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/E:/SqhTest/lib/spark-streaming-kafka-assembly_2.10-1.3.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/E:/SqhTest/lib/spark-assembly-1.3.0-hadoop2.7.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
log4j:WARN Continuable parsing error 39 and column 23
log4j:WARN The content of element type "log4j:configuration" must match "(renderer*,throwableRenderer?,appender*,plugin*,(category|logger)*,root?,(categoryFactory|loggerFactory)?)".

這是 SLF4J 多重綁定的問題,出現的緣由有兩種狀況:

  • 直接引用了相同的 日誌.jar包
  • 不一樣的 .jar包 引用了相同的 日誌jar包

 不過,該問題不會影響日誌記錄和程序功能,可是儘可能避免之。

具體參考https://www.oschina.net/question/93435_174549http://stackoverflow.com/questions/22896243

說明:目前運行環境爲 Spark 1.3 + Scala SDK 2.10.4,如何使用 高版本Spark + Scala SDK 2.11/2.12,有待於進一步研究。現階段,先用此配置學習之

參考

IntelliJ IDEA - features | 官網

從Eclipse轉移到IntelliJ IDEA一點心得爲什麼 IntelliJ IDEA 比 Eclipse 更好

IntelliJ IDEA 簡體中文專題教程IntelliJ IDEA專講 - YouMeek

相關文章
相關標籤/搜索