IDEA的Scala环境搭建

目录

前言

Scala的概述

Scala环境的搭建

一、配置Windows的JAVA环境

二、配置Windows的Scala环境

编写一个Scala程序


前言

 学习Scala最好先掌握Java基础及高级部分知识,文章正文中会提到Scala与Java的联系,简单来讲Scala好比是Java的加强版,因为Scala是一门以Java虚拟机(JVM)为运行环境并将面向对象和函数式编程的最佳特性结合在一起的静态类型编程语言(静态语言需要提前编译的如:Java、c、c++等,动态语言如:js)。

Scala的概述

第一个问题肯定是,scala是什么

Scala是一门以Java虚拟机(JVM)为运行环境并将面向对象和函数式编程的最佳特性结合在一起的 静态类型编程语言(静态语言需要提前编译的如:Java、c、c++等,动态语言如:js)。

  1. Scala是一门多范式的编程语言,Scala支持面向对象和函数式编程。(多范式,就是多种编程方 法的意思。有面向过程、面向对象、泛型、函数式四种程序设计方法。)
  2. Scala源代码(.scala)会被编译成Java字节码(.class),然后运行于JVM之上,并可以调用现有 的Java类库,实现两种语言的无缝对接。
  3. Scala单作为一门语言来看,非常的简洁高效。
  4. Scala在设计时,马丁·奥德斯基是参考了Java的设计思想,可以说Scala是源于Java,同时马丁·奥 德斯基也加入了自己的思想,将函数式编程语言的特点融合到JAVA中, 因此,对于学习过Java的同学, 只要在学习Scala的过程中,搞清楚Scala和Java相同点和不同点,就可以快速的掌握Scala这门语言。

Scala环境的搭建

一、配置Windows的JAVA环境

步骤一:

先下载,windows版本java安装包(要与Linux版本的区分开来

https://www.oracle.com/java/technologies/downloads/#java8-windowsicon-default.png?t=N7T8https://www.oracle.com/java/technologies/downloads/#java8-windows

步骤二:

安装java包,选择你要放的路径(方便后面配置java环境)

步骤三:

点击“设置→系统→(划到最下面)系统信息→高级系统设置→环境变量”

步骤四:

点击”新建→输入变量名→输入变量值(安装路径)“

步骤五:

双击“(已经存在的)Path→添加执行环境”

步骤六:

”win+r“之后输入cmd进入命令行模式

向图中一样就算成功了

二、配置Windows的Scala环境

步骤一:

先下载,windows版本scala安装包(要与Linux版本的区分开来)

https://www.scala-lang.org/download/2.12.15.htmlicon-default.png?t=N7T8https://www.scala-lang.org/download/2.12.15.html

步骤二:

安装scala包,选择你要放的路径(方便后面配置java环境)

步骤三:

点击“设置→系统→(划到最下面)系统信息→高级系统设置→环境变量”

步骤四:

点击”新建→输入变量名→输入变量值(安装路径)“

步骤五:

双击“(已经存在的)Path→添加执行环境”

步骤六:

”win+r“之后输入cmd进入命令行模式

向图中一样就算成功了

编写一个Scala程序

步骤一:

使用IDEA创建maven工程,“File --> new --> Project”

步骤二:

选择创建Maven项目,选择自己的JDK,点击“NEXT”进入下一步:

步骤三:

输入项目名,项目存放的路径

项目创建好后,如下图所示:

步骤四:

安装scala插件,“File --> Settings --> Plugins --> 搜索Scala即可”

如果网络不稳定,或者网络慢,可能会导致安装失败,或者花费很长很长时间,所以我们也可以自己在官网上安装,然后选择“在磁盘中导入”也可以

https://plugins.jetbrains.com/plugin/1347-scala/versionsicon-default.png?t=N7T8https://plugins.jetbrains.com/plugin/1347-scala/versions找到自己idea版本对应的scala版本下载

下载好以后,在idea中导入插件,“File → Settings → Plugins→ 点击旁边的设置按钮的图标

→‘Install Plugin from Disk’”导入下载的插件即可

步骤五:

创建scala文件前需要添加Scala框架

项目右键 → Add Frameworks Support → 勾选Scala即可(在最底下,往下滑)

步骤六:

创建scala文件

步骤七:

写入代码

object HelloWorld {def main(args: Array[String]): Unit = {println("Hello World")}
}

步骤八:

运行结果,第一次会慢点,因为他需要编译的新项目里的各种文件依赖等等

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/291790.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

云原生(六)、CICD - Jenkins快速入门

Jenkuns快速入门 一、CICD概述 CICD是持续集成(Continuous Integration)和持续部署(Continuous Deployment)的缩写。它是软件开发中的一种流程和方法论,旨在通过自动化的方式频繁地将代码集成到共享存储库中&#xf…

Jira 软件缺陷管理 (软件测试)

内容来源:总结黑马课程 1.软件缺陷信息 2.创建缺陷问题 2.1 缺陷模板 2.2 创建缺陷问题模板

vite+vue3使用模块化批量发布Mockjs接口

在Vue3项目中使用Mock.js可以模拟后端接口数据,方便前端开发和调试。下面是使用vitevue3使用模块化批量发布Mockjs接口的步骤: 1. 安装Mock.js 在Vue3项目的根目录下,使用以下命令安装Mock.js: npm install mockjs --save-dev …

flutter Got socket error trying to find package nested at

flutter Got socket error trying to find package nested at xxx 报错信息:“Got socket error trying to find package nested at” 通常出现在Flutter尝试从pub.dev获取依赖包时,由于网络问题导致无法连接到pub.dev或者无法正确解析包的路径。 例如&…

element-ui inputNumber 组件源码分享

今日简单分享 inputNumber 组件的实现原理,主要从以下四个方面来分享: 1、inputNumber 组件的页面结构 2、inputNumber 组件的属性 3、inputNumber 组件的事件 4、inputNumber 组件的方法 一、inputNumber 组件的页面结构。 二、inputNumber 组件的…

HarmonyOS实战开发-使用List组件实现导航与内容联动的效果。

1 卡片介绍 使用ArkTS语言,实现一个导航与内容二级联动的效果。 2 标题 二级联动(ArkTS) 3 介绍 本篇Codelab是主要介绍了如何基于List组件实现一个导航和内容的二级联动效果。样例主要包含以下功能: 切换左侧导航&#xff…

【ROS 笔记1】Topic message通俗理解

前言: topic 能够将所有的独立的模块, 进行有序的交流,链接。 可以想象, roscore, 假设是一个铁路系统的总的开关,当打开总的开关(run roscore), 铁路路就可以畅通起来, 铁路畅通后, 如何进行北京站(机器人recognition)与上海站(机器人抓取)的交流。 那么我们可以从…

iOS UIFont-实现三方字体的下载和使用

UIFont 系列传送门 第一弹加载本地字体:iOS UIFont-新增第三方字体 第二弹加载线上字体:iOS UIFont-实现三方字体的下载和使用 前言 在上一章我们完成啦如何加载使用本地的字体。如果我们有很多的字体可供用户选择,我们当然可以全部使用本地字体加载方式,可是这样就增加了…

新能源汽车充电桩常见类型及充电桩站场的智能监管方案

随着新能源汽车市场的迅猛发展,充电桩作为支持其运行的基础设施,也呈现出多样化的类型。这些充电桩不仅在外形和功能上存在差异,更在充电速度、充电方式以及使用场景等方面展现出独特的优势。 一、充电桩类型及区别 1、慢充桩(交…

【力扣】300. 最长递增子序列(DFS+DP两种方法实现)

目录 题目传送最长递增子序列[DFS 方法]DFS方法思路图思路简述代码大家可以自行考虑有没有优化的方法 最长递增子序列[DP]方法DP方法思路图思路简述代码方案 题目传送 原题目链接 最长递增子序列[DFS 方法] DFS方法思路图 思路简述 对于序列中的每一个数字只有选择和不选择两…

CVE-2023-38408漏洞修复 - 升级openssl和openssh

CVE-2023-38408 OpenSSH 代码问题漏洞修复 - 升级openssl和openssh ※ 重要说明: 1、升级后会导致无法用ssh远程登录,提示“Permission denied, please try again.” 2、解决方案请查看本章节【三、解决升级后无法用ssh远程登录】 目录 CVE-2023-38408 O…

神经网络与深度学习(一)

线性回归 定义 利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法 要素 训练集(训练数据)输出数据拟合函数数据条目数 场景 预测价格(房屋、股票等)、预测住院时间&#…

什么是防火墙,部署防火墙有什么好处?

与我们的房屋没有围墙或界限墙一样,没有防护措施的计算机和网络将容易受到黑客的入侵,这将使我们的网络处于巨大的风险之中。因此,就像围墙保护我们的房屋一样,虚拟墙也可以保护和安全我们的设备,使入侵者无法轻易进入…

API成网络攻击常见载体,如何确保API安全?

根据Imperva发布的《2024年API安全状况报告》,API成为网络攻击者的常见载体,这是因为大部分互联网流量(71%)都是API调用,API是访问敏感数据的直接途径。根据安全公司Fastly的一项调查显示,95%的企业在过去1…

送朋友的生日祝福静态页面代码!(小白也能轻松GET!)

Hey亲爱的小白们!👋 知道你们想给朋友一个独特又有心的生日祝福,却苦于没有编程基础吗?别担心,来白嫖!🎁 🚀【生日祝福静态页面代码】来啦!只需简单几步,就能…

python--os和os.path模块

>>> import os >>> #curdir #获取当前脚本的绝对路径 >>> os.curdir . >>> import os.path >>> #获取绝对路径 >>> os.path.abspath(os.curdir) C:\\Users\\GUOGUO>>> #chdir #修改当前目录 >&g…

springboot上

springboot spring概述 https://spring.io 特点 springboot主要特性 依赖管理 场景starter 自动配置 默认包和扫描路径 自定义包扫描路径 spring配置介绍 yml书写 常用注解介绍

【第三方登录】Twitter

创建应用 APPID 和 相关回调配置 重新设置api key 和 api secret 设置回调和网址 还有 APP的类型 拿到ClientID 和 Client Secret 源码实现 获取Twitter 的登录地址 public function twitterUrl() {global $db,$request,$comId;require "inc/twitter_client/twitte…

线程安全(二)--死锁

TOC 一:什么是死锁??? public class Demo1 {public static void main(String[] args) {Object lockernew Object();Thread threadnew Thread(()->{synchronized(locker){synchronized (locker){System.out.println("hello thread");}}});thread.start();} }上…

深度学习入门简单实现一个神经网络

实现一个三层神经网络 引言测试数据 代码 引言 今天我们实现一个简单的神经网络 俩个输入神经元 隐藏层两个神经元 一个输出神经元 激活函数我们使用sigmoid 优化方法使用梯度下降 我们前期准备是需要把这些神经元的关系理清楚 x1:第一个输入 x2:第二个…