当前位置:首页 > Java技术 > 在IntelliJ IDEA中创建和运行java/scala/spark程序

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

2022年08月05日 16:18:30Java技术4

本文将分两部分来介绍如何在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
  2. 像python一样命令运行
    // scala 
    scala script.scala 
    // python
    python script.py
  3. 用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的版本

在IntelliJ IDEA中创建和运行java/scala/spark程序 _ JavaClub全栈架构师技术笔记

在IntelliJ IDEA中创建和运行java/scala/spark程序 _ JavaClub全栈架构师技术笔记

  1. 新建Package

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

在IntelliJ IDEA中创建和运行java/scala/spark程序 _ JavaClub全栈架构师技术笔记

  1. 新建Class

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

  1. 设置源码目录

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

在IntelliJ IDEA中创建和运行java/scala/spark程序 _ JavaClub全栈架构师技术笔记

  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同步一下,把以来加载到本地:

在IntelliJ IDEA中创建和运行java/scala/spark程序 _ JavaClub全栈架构师技术笔记

如果你创建的不是Maven项目,那么你需要自己管理你自己的依赖。我们通过如下方式将你引用的jar包手动添加进来:

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

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

在IntelliJ IDEA中创建和运行java/scala/spark程序 _ JavaClub全栈架构师技术笔记

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

在IntelliJ IDEA中创建和运行java/scala/spark程序 _ JavaClub全栈架构师技术笔记

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

在IntelliJ IDEA中创建和运行java/scala/spark程序 _ JavaClub全栈架构师技术笔记

创建并运行Scala/Spark程序

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


总结

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

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

在IntelliJ IDEA中创建和运行java/scala/spark程序 _ JavaClub全栈架构师技术笔记


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

文末福利

Java 资料大全 链接:https://pan.baidu.com/s/1pUCCPstPnlGDCljtBVUsXQ 密码:b2xc 更多资料: 2020 年 精选阿里 Java、架构、微服务精选资料等,加 v ❤ :qwerdd111

本文由博客一文多发平台 OpenWrite 发布!

作者:程序员泥瓦匠
来源链接:https://bysocket.blog.csdn.net/article/details/106192787

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/java/17739.html

分享给朋友:

“在IntelliJ IDEA中创建和运行java/scala/spark程序” 的相关文章

什么是重载or重写,二者的区别是?

目录 1.重写 2.重载 3.重载(Overload) 和重写(Override) 的区别? 1.重写 重写必须满足如...

Java空指针异常解决java.lang.NullPointerException解决心得

Java空指针异常解决java.lang.NullPointerException解决心得

今天做课设的时候运行程序报出以下错误 java.lang.NullPointerException 首先要理解的是此错误并不会在 程序中报错,只会在运行的时候报错。 是由于某个参数(集合,数组等数据)可能出现一个null值而导致后面的程序不能运行时...

一分钟搞定Java环境变量配置

一分钟搞定Java环境变量配置

对于学Java的人来说,成功配置环境变量是第一步,因为后期不论 你做什么工作,会发现都需要这些,接下来介绍如何安装与配置,我按照jdk1.6来说明,其他一致。 下载官网 首先将jdk安装好后进行配置。 右击“计算机”,右键打开“属性”,...

1024 节日快乐!Linux find 命令介绍

1024 节日快乐!Linux find 命令介绍

前言   作为开发人员的的我们,经常会遇到在服务器中查询搜索需要的某个文件或者某个文件夹,Linux服务器并不像WIndows那样可以在可视化的界面进行搜索查找的操作,这时我们经常会使用到find命令来进行查询。你了解find的命令吗?本文将与大家一起分享find命令的操作...

SpringBoot之整合Mybatis篇

SpringBoot之整合Mybatis篇

开头语 啪嚓,醒木一拍(咳咳) ,上回书我们说到:SpringBoot的简单搭建,也就是SpringBoot的搭建流程,简单的将项目进行启动,本次,我们简单的把SpringBoot与持久层框架Mybatis进行整合,接下来,我们开始。 Mybatis名词解释   &...

浅谈RPC原理

浅谈RPC原理

一、概念定义 百度百科: RPC(Remote Procedure Call ),即远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨...

SpringBoot整合SpringCloud分布式服务

SpringBoot整合SpringCloud分布式服务

一、SpringCloud是什么 度娘:Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署...

安全认证框架——Shiro原理解析

安全认证框架——Shiro原理解析

一、什么是shiro shiro是apache公司下一款优秀的Java安全认证框架,它强大且容易使用,它支持身份验证、授权、密码和会话管理功能,与shiro有着同样功能的框架是Spring Security,对比Spring Security来看,shiro用起来简单且可以脱离Spring使...

浅谈高性能web程序解决方案

浅谈高性能web程序解决方案

一、常见的高并发是怎么来的 对于web项目,随着用户量的增加就有可能产生高并发的问题。高并发简单的来说就是在同一时刻不同用户访问同一资源的问题,专业一点的说法就是在同一时刻有多个线程访问了同一个数据资源。 二、系统性能评定几个指标 一个高性能系统是由以下几个指标决定的:吞吐量(TPS)...

linux系统(CentOS7)下安装jdk8

linux系统(CentOS7)下安装jdk8

一、开头语 Java跨系统的特性,使得Java项目可以在各平台之间运行,Linux操作系统是一个开源的系统,目前被全球很多企业用来当做服务器系统,目前开发的许多web工程,几乎都会在linux系统上部署,今天来整理下linux下如何安装Java开发工具包,JDK1.8版本。 二、开始安装...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。