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

  • 基本概念介绍
  • 在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/.

Java

本文使用版本为:java 8

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

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

实际开发中每个java程序都会依赖其他的包,也就是jar,这种情况你必须告诉java.exe 你的jar包都在哪里,告诉java的方式就是通过classpath指定,通常我们都会在系统环境变量中建立一个CLASSPATH的环境变量,这样java会在这里寻找你程序依赖的包。当然也可以在运行时指定,这样的话程序执行的方式就是下面的样子:

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

可以下载多个版本,对不同的程序使用不同的配置,很方便。

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中的插件自行下载,推荐后者,下载方式为:

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的版本

  1. 新建Package

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

  1. 新建Class

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

  1. 设置源码目录

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

  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项目,那么你需要自己管理你自己的依赖。我们通过如下方式将你引用的jar包手动添加进来:

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

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

然后我们就可以通过Run命令运行这个HelloWord 程序了,运行的时候直接选择默认配置:

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管理的包会自动帮你生成相关配置,像下图一样:

创建并运行Scala/Spark程序

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


总结

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

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


如果你觉得文章有帮助,可以在任何平台搜索”黑客悟理“ 并关注我。感谢支持!

如果你喜欢以上内容,欢迎到我的个人主页关注我:Homepage

如何在IntelliJ IDEA中运行Java/Scala/Spark程序的更多相关文章

  1. 在IntelliJ IDEA中创建和运行java/scala/spark程序

    本文将分两部分来介绍如何在IntelliJ IDEA中运行Java/Scala/Spark程序: 基本概念介绍 在IntelliJ IDEA中创建和运行java/scala/spark程序 基本概念介 ...

  2. 在dos中运行java程序,若出现Exception in thread “main" java.lang.NoClassDefFoundError

    在dos中运行java程序,若出现Exception in thread “main" java.lang.NoClassDefFoundError,可以检查一下几项: 环境变量配置: 注意 ...

  3. 如何在Sublime text中运行PHP文件

    如何在Sublime text中运行PHP文件 2014-06-14 17:17 3709人阅读 评论(1) 收藏 举报 phpSublime Text 一.将PHP安装目录放如环境变量PATH 二. ...

  4. 如何在IntelliJ IDEA中使用.ignore插件忽略不必要提交的文件

    如何在IntelliJ IDEA中使用.ignore插件忽略不必要提交的文件 最近初学Git,而且在使用的IDE是IntelliJ IDEA,发现IDEA在提交项目到本地仓库的时候,会把.idea文件 ...

  5. 在Eclipse中运行JAVA代码远程操作HBase的示例

    在Eclipse中运行JAVA代码远程操作HBase的示例 分类: 大数据 2014-03-04 13:47 3762人阅读 评论(2) 收藏 举报 下面是一个在Windows的Eclipse中通过J ...

  6. (转)在Docker中运行Java:为了防止失败,你需要知道这些

    转自:https://mp.weixin.qq.com/s?__biz=MzA5OTAyNzQ2OA==&mid=2649693848&idx=1&sn=4e9ef7e2a9d ...

  7. cmd 窗口中运行 Java 程序

    1.CMD 命令提示符(Command Processor)(CMD) CMD命令:开始->运行->键入 cmd(在命令行里可以看到系统版本.文件系统版本) 2.对文件夹操作的部分命令 启 ...

  8. eclipse中运行java程序

    1 package ttt; public class Testttt { public static void main() { Person p =new Person(); p.name=&qu ...

  9. 订阅 如何在IntelliJ IDEA中使用.ignore插件忽略不必要提交的文件

    如何在IntelliJ IDEA中使用.ignore插件忽略不必要提交的文件 标签: idea git 插件 分类: Git 最近初学Git,而且在使用的IDE是IntelliJ IDEA,发现IDE ...

  10. 【转】Tomcat中部署java web应用程序

    http://www.blogjava.net/jiafang83/archive/2009/06/02/279644.html 转载:今天给大家介绍怎样在Tomcat5.5.9中部署Java Web ...

随机推荐

  1. Axure 辅助线--栅格化布局

    全局辅助线 在所有页面都会显示,比如主页面是框架.子页面通过[内联框架]去加载,为了子页面的元件不偏移,可以创建创建全局辅助线 页面辅助线

  2. 以 Golang 为例详解 AST 抽象语法树

    前言 各位同行有没有想过一件事,一个程序文件,比如 hello.go 是如何被编译器理解的,平常在编写程序时,IDE 又是如何提供代码提示的.在这奥妙无穷的背后, AST(Abstract Synta ...

  3. POJ 3259 Wormholes(bellman_ford、Floyd、SPFA判断负环)

    POJ 3259 http://poj.org/problem?id=3259 题意: 农夫 FJ 有 N 块田地[编号 1...n] (1<=N<=500) 田地间有 M 条路径 [双向 ...

  4. Java | 个人学习指南笔记

    前言:由于作者已经有C语言,C++和Python语言的基础了,所以在文章的编写时会以这几门编程语言作对比.本文学习自 C语言中文网的 Java 教程,部分内容引用自这.引用内容仅作学习使用. 第1章: ...

  5. <vue 基础知识 3、v-bind使用>

    代码结构 一.     v-bind基本使用 1.效果 2.代码 01-v-bind基本使用.html <!DOCTYPE html> <html lang="en&quo ...

  6. 项目管理之问,ChatGPT作答

    项目管理 帮我列一份<项目管理>的大纲 当然可以!以下是一个典型的<项目管理>大纲: I. 项目管理概述 A. 项目管理定义和目标 B. 项目管理的重要性和价值 C. 项目管理 ...

  7. Jenkins安装完成后,一直停留在页面Please wait while Jenkins is getting ready to work...的解决方法

    一.打开jenkins一直显示如下页面:

  8. java项目实践-请求转发以及重定向-day18

    目录 1. 中文乱码问题 2. 请求的转发servlet 3. 登录后的重定向 4 总结 1. 中文乱码问题 创建一个工程secondweb 添加jar包依赖 new servlet web.xml添 ...

  9. python json.loads()、json.dumps()和json.dump()、json.load()区别

    json.loads().json.dumps()和json.dump().json.load()分别是两组不同用法 带s的用于数据类型的转换,不带s的用于操作文件. json.loads().jso ...

  10. ABP微服务系列学习-微服务模板结构

    开源版本ABP CLI里面的模板是不包含微服务模板的,而商业版里面有一个微服务模板.这个模板据说是微服务的最佳实践,eShopOnAbp这个仓库的结构基本也和商业版的微服务模板一致.那就开始学习一下. ...