jetbrain开发的IDE,用于Java、Groovy、Scala等的开发:php
工具下载最新版本信息html
version:2017.1
build:IC-171.3780.107java
具体参考:IntelliJ IDEA 官网;android
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
或者下载idea的2019版本:http://www.javashuo.com/article/p-pmumexdk-kc.htmlintellij-idea
个性化设置,在 File | Settings | ... 下:
注意,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 程序
(2)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 多重绑定的问题,出现的缘由有两种状况:
不过,该问题不会影响日志记录和程序功能,可是尽可能避免之。
具体参考:https://www.oschina.net/question/93435_174549,http://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 更好;