在IntelliJ IDEA中建立和运行java/scala/spark程序

本文将分两部分来介绍如何在IntelliJ IDEA中运行Java/Scala/Spark程序:java

  • 基本概念介绍
  • 在IntelliJ IDEA中建立和运行java/scala/spark程序

基本概念介绍

IntelliJ IDEA

本文使用版本为: ideaIC-2020.1

IDEA 全称 IntelliJ IDEA,是java编程语言开发的集成环境。IntelliJ在业界被公认为最好的java开发工具,它的旗舰版本还支持HTML,CSS,PHP,MySQL,Python等,免费版只支持Java,Scala等少数语言。若是只开发Java和Scala,去官网下载社区版便可:https://www.jetbrains.com/idea/.python

Java

本文使用版本为:java 8

编程语言,不解释。在IDE以外运行Java程序的方式以下:shell

javac HelloWord.java // 先编译源码 ---->java HelloWord.class
java.exe  HelloWord // 直接运行

实际开发中每一个java程序都会依赖其余的包,也就是jar,这种状况你必须告诉java.exe 你的jar包都在哪里,告诉java的方式就是经过classpath指定,一般咱们都会在系统环境变量中创建一个CLASSPATH的环境变量,这样java会在这里寻找你程序依赖的包。固然也能够在运行时指定,这样的话程序执行的方式就是下面的样子:apache

java.exe  -classpath "D:\Program Files\java-se-8u41-ri\jre\lib\charsets.jar;..."  HelloWord
//  -classpath: Java程序以来包或包的路径,Windows下用 ; 分开。

能够本身下载安装Javaj的JDK,也能够直接从IDEA上下载和管理,建议使用后者。编程

File -> Project Structure -> Platform Setting -> SDKs -> + -> Download JDK

能够下载多个版本,对不一样的程序使用不一样的配置,很方便。api

Scala

本文使用版本为:Scala 2.11.12

Scala是一门多范式的编程语言,一种相似java的编程语言 ,设计初衷是实现可伸缩的语言 、并集成面向对象编程函数式编程的各类特性。它一方面吸取继承了多种语言中的优秀特性,一方面又没有抛弃Java这个强大的平台,它运行在Java虚拟机(JavaVirtualMachine)之上,轻松实现和丰富的Java类库互联互通架构

基于Java的编程语言,支持多种运行方式:框架

  1. 像python同样,交互式运行
// scala
scala> println("HelloWorld")
HelloWorld
// python
python> print("HelloWorld")
HelloWorld
  1. 像python同样命令运行
// scala 
scala script.scala 
// python
python script.py
  1. 用scalac或fsc编译为.class 或 jar 再用java命令运行,每次scalac编译都须要启动一个JVM

Scala能够自行安装下载,也能够利用IDEA中的插件自行下载,推荐后者,下载方式为:maven

File -> Project Structure -> Platform Setting -> Global Libraries -> + -> Download...

同时,也须要下载scala的插件:编程语言

File -> Settings... -> Plugins -> Marketplace ... -> [ Search Scala ]

因此,Scala像是一门新的编程语言,又和Java有着密不可分的联系。

Maven

管理依赖,和构建Java项目的工具,很少介绍,能够自行下载也能够直接使用IDEA中自带的版本,插件下载方式:

File -> Settings... -> Plugins -> Marketplace ... -> [ Search Maven ]

Spark

本文使用版本为:spark 2.4.5

Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。SparkSpark 是在 Scala 语言中实现的,它将 Scala 用做其应用程序框架。Spark既不是SDK也不是Global Libriaries,在IDEA中能够像使用普通的包同样使用spark。若是想使用spark-shell,能够自行下载。


综上可知:Spark用Scala实现,Scala又构建于JVM之上,和Java之间能够密切互通。因此要想开发Spark程序,必须对三者及其关系有必定的了解。

在IntelliJ IDEA中建立和运行java/scala/spark程序

建立并运行Java程序

  1. 新建项目

选择 Create Project 建立Java/Scala程序,这一步关键是要选择你的JDK。若是你下载或安装了多个版本的JDK且被IDEA识别,那么你能够用下拉列表选择合适的JDK的版本

Java

JDK

  1. 新建Package

在 src目录上右键,选择新建Package,也就是你的代码所在的包名,这一步能够跳过。

新建Package

  1. 新建Class

在包所在的目录上右键,新建Java/Scala Class

  1. 设置源码目录

这一步也很重要,须要把src目录设置成源码目录,由于IDEA只会在源码目录下找你的程序。

Sources Root

  1. 编写代码

为了完整演示如何运行程序,代码中加入了对第三方库的引用。

package com.example;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

public class HelloWord {
    static final Logger logger = LogManager.getLogger(HelloWord.class.getName());

    public static void main(String[] args) {
        logger.entry();
        logger.error("Inside Hello Logger!");
        logger.exit(false);
    }
}

那么问题来了,如何告诉java你的第三方包在哪里呢?若是建立的是Maven项目,能够在Maven项目中添加依赖,具体配置网上都有教程,能够直接参考,而后别忘了让maven同步一下,把以来加载到本地:

Maven

若是你建立的不是Maven项目,那么你须要本身管理你本身的依赖。咱们经过以下方式将你引用的jar包手动添加进来:

File -> Project Structure -> Project Setting -> Libraries -> + -> Java..

添加完以后你的配置会长这个样子:

Libraries

而后咱们就能够经过Run命令运行这个HelloWord 程序了,运行的时候直接选择默认配置:

config

IDEA命令行中实际执行的命令以下,能够看出也是用了 -classpath参数来指定依赖的。

D:\Program Files\java-se-8u41-ri\bin\java.exe
 -Djava.library.path=C:\Users\haipw\.m2\repository 
"-javaagent:D:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2020.1\lib\idea_rt.jar=59878:D:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2020.1\bin"
 -Dfile.encoding=UTF-8 -classpath 
"
D:\Program Files\java-se-8u41-ri\jre\lib\charsets.jar;
D:\Program Files\java-se-8u41-ri\jre\lib\ext\cldrdata.jar;
D:\Program Files\java-se-8u41-ri\jre\lib\ext\dnsns.jar;
D:\Program Files\java-se-8u41-ri\jre\lib\ext\localedata.jar;
D:\Program Files\java-se-8u41-ri\jre\lib\ext\nashorn.jar;
D:\Program Files\java-se-8u41-ri\jre\lib\ext\sunec.jar;
D:\Program Files\java-se-8u41-ri\jre\lib\ext\sunjce_provider.jar;
D:\Program Files\java-se-8u41-ri\jre\lib\ext\sunmscapi.jar;
D:\Program Files\java-se-8u41-ri\jre\lib\ext\sunpkcs11.jar;
D:\Program Files\java-se-8u41-ri\jre\lib\ext\zipfs.jar;
D:\Program Files\java-se-8u41-ri\jre\lib\jce.jar;
D:\Program Files\java-se-8u41-ri\jre\lib\jsse.jar;
D:\Program Files\java-se-8u41-ri\jre\lib\management-agent.jar;
D:\Program Files\java-se-8u41-ri\jre\lib\resources.jar;
D:\Program Files\java-se-8u41-ri\jre\lib\rt.jar;
D:\Users\Java\TestJava\out\production\TestJava;
D:\OneDrive\apache-log4j-2.13.2-bin\log4j-api-2.13.2.jar;
D:\OneDrive\apache-log4j-2.13.2-bin\log4j-core-2.13.2.jar;
D:\OneDrive\apache-log4j-2.13.2-bin\log4j-core-2.13.2-tests.jar
"
com.example.HelloWord

固然,手动添加Libraries的方式并不推荐,此处演示也是为了说明其中的原理 。实际中也偶尔遇到加载不成功等bug,首选的方式依然是用maven管理,可是道理是同样的。Maven管理的包会自动帮你生成相关配置,像下图同样:

maven

建立并运行Scala/Spark程序

知道如何建立和运行java,再运行scala就很简单了。区别只是你建立项目的时候要选择Scala,而后新建一个 example.scala的源码便可。在此略过。


总结

在IDEA中运行Java/Scala/Spark程序,推荐使用Maven进行依赖的管理,同时要注意以下事项:

  • 保证你Project Structure 中的SDK 和 Global Libiaries 的版本正确。
  • 在更新maven配置以后必定要从新加载一下,及时更新配置
  • 运行程序必需要先配置,通常系统会自动生产一个配置,有时候须要本身添加或修改一些参数,请在 Edit Configuration 选项下打开并修改:

Edit Configuration


若是你以为文章有帮助,能够在任何平台搜索”黑客悟理“ 并关注我。感谢支持!

文末福利

更多资料: 2020 年 精选阿里 Java、架构、微服务精选等,加 v ❤ :gongchengshi6678

本文由博客一文多发平台 OpenWrite 发布!
相关文章
相关标签/搜索