Ubuntu下安装Scala
前言
弄了一下终于成功装上了,这里对此进行一下总结
安装虚拟机
VMware虚拟机安装Ubuntu(超详细图文教程)_vmware安装ubuntu-CSDN博客https://blog.csdn.net/qq_43374681/article/details/129248167Download Ubuntu Desktop | Download | Ubuntu
https://ubuntu.com/download/desktop安装redhat虚拟机_怎么安装redhat的虚拟机-CSDN博客
https://blog.csdn.net/weixin_64066303/article/details/130287039?spm=1001.2014.3001.5501有了前面安装红帽的经验,我相信Ubuntu的安装是得心应手了。
安装Java
Ubuntu下安装Java_ubuntu安装java-CSDN博客https://blog.csdn.net/JqlScala/article/details/133462691直接可以指令安装
更新所有软件包
sudo apt update
安装默认Java运行时环境(JRE)
sudo apt install default-jre
安装Java开发工具包(JDK)
sudo apt install default-jdk
验证是否安装成功
root@feng-virtual-machine:~# java -version
openjdk version "11.0.22" 2024-01-16
OpenJDK Runtime Environment (build 11.0.22+7-post-Ubuntu-0ubuntu222.04.1)
OpenJDK 64-Bit Server VM (build 11.0.22+7-post-Ubuntu-0ubuntu222.04.1, mixed mode, sharing)
安装Scala
All Available Versions | The Scala Programming Language (scala-lang.org)https://www.scala-lang.org/download/all.html(Spark)学习进度十五(虚拟机(ubuntu)安装scala和使用) - 细胞何 - 博客园 (cnblogs.com)
https://www.cnblogs.com/hwh000/p/12310651.html
然后按照他的步骤,解压和配置环境。
添加(/usr/local/scala是自己的安装路径)
export SCALA_HOME=/usr/local/scala
export PATH=${SCALA_HOME}/bin:$PATH
使环境变量生效
source /etc/profile
root@feng-virtual-machine:~# scala -version
Scala code runner version 2.11.8 -- Copyright 2002-2016, LAMP/EPFL
但是结果出现了
root@feng-virtual-machine:/usr/local/scala# ./bin/scala
Exception in thread "main" java.lang.NoClassDefFoundError: javax/script/Compilableat scala.tools.nsc.interpreter.ILoop.createInterpreter(ILoop.scala:118)at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply$mcZ$sp(ILoop.scala:911)at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply(ILoop.scala:909)at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply(ILoop.scala:909)at scala.reflect.internal.util.ScalaClassLoader$.savingContextLoader(ScalaClassLoader.scala:97)at scala.tools.nsc.interpreter.ILoop.process(ILoop.scala:909)at scala.tools.nsc.MainGenericRunner.runTarget$1(MainGenericRunner.scala:74)
./bin/scala出错(Exception in thread “main“java. lang . NoClassDefFoundError: javax/script/Compilable)_exception in thread "main" java.lang.noclassdeffou-CSDN博客https://blog.csdn.net/weixin_52350007/article/details/120569898推测是版本不兼容的问题,然后我找到了一个选择版本的
JDK Compatibility | Scala Documentation (scala-lang.org)https://docs.scala-lang.org/overviews/jdk-compatibility/overview.html
因为JDK显示是11,之后我安装了2.11.12版本的Scala还是失败了,然后安装3.0.0的没有明显的下载文件,只有一个GitHub的地址。
所以我选择下载2.13.0的版本。
按照同样的方法结果又可以了。
root@feng-virtual-machine:/usr/local/scala/bin# scala
Welcome to Scala 2.13.0 (OpenJDK 64-Bit Server VM, Java 11.0.22).
Type in expressions for evaluation. Or try :help.scala> println("Hello World!")
Hello World!scala>
虽然是出现了一个警告,但是还是可以运行。
root@feng-virtual-machine:~# cd /usr/local/scala
root@feng-virtual-machine:/usr/local/scala# sudo mkdir mycode
root@feng-virtual-machine:/usr/local/scala# cd ./mycode
root@feng-virtual-machine:/usr/local/scala/mycode# ls
root@feng-virtual-machine:/usr/local/scala/mycode# sudo vim HelloWorld.scala
root@feng-virtual-machine:/usr/local/scala/mycode# ls
HelloWorld.scala
root@feng-virtual-machine:/usr/local/scala/mycode# scalac HelloWorld.scala
warning: there was one deprecation warning (since 2.13.0); re-run with -deprecation for details
one warning found
root@feng-virtual-machine:/usr/local/scala/mycode# ls
'HelloWorld$.class' HelloWorld.class HelloWorld.scala
root@feng-virtual-machine:/usr/local/scala/mycode# scala -classpath . HelloWorld
Hello World!
root@feng-virtual-machine:/usr/local/scala/mycode# ls
'HelloWorld$.class' HelloWorld.class HelloWorld.scala
root@feng-virtual-machine:/usr/local/scala/mycode# cat HelloWorld.scalaobject HelloWorld{def main(args: Array[String]){println("Hello World!")}
}
root@feng-virtual-machine:/usr/local/scala/mycode#
按要求加上deprecation参数,显示该语法被弃用了。
root@feng-virtual-machine:/usr/local/scala/mycode# scalac -deprecation HelloWorld.scala
HelloWorld.scala:3: warning: procedure syntax is deprecated: instead, add `: Unit =` to explicitly declare `main`'s return typedef main(args: Array[String]){^
one warning found
按照要求修改之后就可以了,添加` :Unit=`
root@feng-virtual-machine:/usr/local/scala/mycode# scalac HelloWorld.scala
root@feng-virtual-machine:/usr/local/scala/mycode# cat HelloWorld.scala
object HelloWorld{def main(args: Array[String]): Unit={println("Hello World!")}
}
root@feng-virtual-machine:/usr/local/scala/mycode# ls
'HelloWorld$.class' HelloWorld.class HelloWorld.scala
root@feng-virtual-machine:/usr/local/scala/mycode# scala -classpath . HelloWorld
Hello World!
root@feng-virtual-machine:/usr/local/scala/mycode#
FinalShell
FinalShell官网 (hostbuf.com)https://www.hostbuf.com/这里还有一个软件,感兴趣的小伙伴可以尝试一下,在windows系统下连接Linux的虚拟机。
其中“名称”是自己起,“主机”是用ifconfig指令查看,“端口”默认是22,认证是root,密码就是root的密码。密码不知道可以设置一下。
【ubuntu】设置root用户密码_ubuntu设置root用户密码-CSDN博客https://blog.csdn.net/weixin_43500200/article/details/131118075我的是inet 192.168.92.130
root@feng-virtual-machine:~# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 192.168.92.130 netmask 255.255.255.0 broadcast 192.168.92.255inet6 fe80::5c97:a5d8:e86f:ce76 prefixlen 64 scopeid 0x20<link>ether 00:0c:29:5f:3c:62 txqueuelen 1000 (以太网)RX packets 279948 bytes 161217845 (161.2 MB)RX errors 42 dropped 42 overruns 0 frame 0TX packets 385434 bytes 102925217 (102.9 MB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0device interrupt 19 base 0x2000 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536inet 127.0.0.1 netmask 255.0.0.0inet6 ::1 prefixlen 128 scopeid 0x10<host>loop txqueuelen 1000 (本地环回)RX packets 7077 bytes 854481 (854.4 KB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 7077 bytes 854481 (854.4 KB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
当然输入密码的时候,密码不会回显。
root@feng-virtual-machine:~# sudo passwd root
新的密码:
重新输入新的密码:
passwd:已成功更新密码
root@feng-virtual-machine:~#
补:
决定还是安装新版的Scala,JDK还是17,Scala选择了3.3.3.
Java Downloads | Oraclehttps://www.oracle.com/java/technologies/downloads/#java17
# sudo dpkg -i jdk-17_linux-x64_bin.deb
# java -versionjava version "17.0.10" 2024-01-16 LTS
Java(TM) SE Runtime Environment (build 17.0.10+11-LTS-240)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.10+11-LTS-240, mixed mode, sharing)
root@feng-virtual-machine:~#
然后使用了Scala,结果报错了。
scala> println("hello world")
java.io.IOError: java.lang.RuntimeException: /packages cannot be represented as URIat java.base/jdk.internal.jrtfs.JrtPath.toUri(JrtPath.java:175)at scala.tools.nsc.classpath.JrtClassPath.asURLs(DirectoryClassPath.scala:216)at scala.tools.nsc.classpath.AggregateClassPath.$anonfun$asURLs$1(AggregateClassPath.scala:63)at scala.collection.StrictOptimizedIterableOps.flatMap(StrictOptimizedIterableOps.scala:118)at scala.collection.StrictOptimizedIterableOps.flatMap$(StrictOptimizedIterableOps.scala:105)at scala.collection.immutable.Vector.flatMap(Vector.scala:113)at scala.tools.nsc.classpath.AggregateClassPath.asURLs(AggregateClassPath.scala:63)at scala.tools.nsc.interpreter.IMain.compilerClasspath(IMain.scala:93)at scala.tools.nsc.interpreter.IMain.makeClassLoader(IMain.scala:352)at scala.tools.nsc.interpreter.IMain.ensureClassLoader(IMain.scala:275)at scala.tools.nsc.interpreter.IMain.classLoader(IMain.scala:278)at scala.tools.nsc.interpreter.IMain.runtimeMirror$lzycompute(IMain.scala:168)at scala.tools.nsc.interpreter.IMain.runtimeMirror(IMain.scala:168)at scala.tools.nsc.interpreter.IMain.$anonfun$getModuleIfDefined$1(IMain.scala:177)at scala.tools.nsc.interpreter.IMain.getModuleIfDefined(IMain.scala:170)at scala.tools.nsc.interpreter.IMain.readRootPath(IMain.scala:289)at scala.tools.nsc.interpreter.IMain$ReadEvalPrint.resolvePathToSymbol(IMain.scala:662)at scala.tools.nsc.interpreter.IMain$Request.resultSymbol$lzycompute(IMain.scala:919)at scala.tools.nsc.interpreter.IMain$Request.resultSymbol(IMain.scala:918)at scala.tools.nsc.interpreter.IMain$Request.typeOf$lzycompute(IMain.scala:930)at scala.tools.nsc.interpreter.IMain$Request.typeOf(IMain.scala:935)at scala.tools.nsc.interpreter.IMain$Request.compile(IMain.scala:897)at scala.tools.nsc.interpreter.IMain.compile(IMain.scala:493)at scala.tools.nsc.interpreter.IMain.interpret(IMain.scala:487)at scala.tools.nsc.interpreter.IMain.interpret(IMain.scala:470)at scala.tools.nsc.interpreter.shell.ILoop.interpretStartingWith(ILoop.scala:930)at scala.tools.nsc.interpreter.shell.ILoop.command(ILoop.scala:787)at scala.tools.nsc.interpreter.shell.ILoop.processLine(ILoop.scala:462)at scala.tools.nsc.interpreter.shell.ILoop.loop(ILoop.scala:485)at scala.tools.nsc.interpreter.shell.ILoop.run(ILoop.scala:1019)at scala.tools.nsc.MainGenericRunner.runTarget$1(MainGenericRunner.scala:87)at scala.tools.nsc.MainGenericRunner.run$1(MainGenericRunner.scala:91)at scala.tools.nsc.MainGenericRunner.process(MainGenericRunner.scala:102)at scala.tools.nsc.MainGenericRunner$.main(MainGenericRunner.scala:107)at scala.tools.nsc.MainGenericRunner.main(MainGenericRunner.scala)
Caused by: java.lang.RuntimeException: /packages cannot be represented as URI... 35 moreThat entry seems to have slain the compiler. Shall I replay
your session? I can re-run each line except the last one.
[y/n]
于是按照前面的要求下载的3.3.3版本的Scala。
Release 3.3.3 · lampepfl/dotty (github.com)https://github.com/lampepfl/dotty/releases/tag/3.3.3
# sudo tar -zxvf scala3-3.3.3.tar.gz -C /usr/local
# scala -version
Scala code runner version 3.3.3 -- Copyright 2002-2024, LAMP/EPFL
scala> println("hello world")
hello world
相关文章:

Ubuntu下安装Scala
前言 弄了一下终于成功装上了,这里对此进行一下总结 安装虚拟机 VMware虚拟机安装Ubuntu(超详细图文教程)_vmware安装ubuntu-CSDN博客https://blog.csdn.net/qq_43374681/article/details/129248167Download Ubuntu Desktop | Download | …...

无法启动报,To install it, you can run: npm install --save @/components/iFrame/index
运行的过程中后台报错 npm install --save /components/iFrame/index,以为是安装三方依赖错误,经过多次重装node_modules依然没有用。 没办法,只能在项目中搜索 components/iFrame/index这个文件。。突然醒悟。。。 有时候,犯迷…...

深入理解现代JavaScript:从语言特性到应用实践
💂 个人网站:【 海拥】【神级代码资源网站】【办公神器】🤟 基于Web端打造的:👉轻量化工具创作平台💅 想寻找共同学习交流的小伙伴,请点击【全栈技术交流群】 JavaScript作为一门动态、解释性脚本语言&…...

ThreadPoolExecutor 学习
ThreadPoolExecutor 是开发中最常用的线程池,今天来简单学习一下它的用法以及内部构造。 1、线程池存在的意义? 一般在jvm上,用户线程和操作系统内核线程是1:1的关系,也就是说,每次创建、销毁线程的时候&am…...
深入理解计算机操作系统书籍阅读感悟(一)
1.sp:表示为空格,ASCII为32 2.在我们写的每行程序结尾都有一个隐藏的\n(ASCII码值为10) 3.在书上的P2页上说:文本文件是指以ASCII码字符构成的文件,其余都是二进制文件 除了这种理解,更常见的…...

使用query请求数据出现500的报错
我在写项目的时候遇到了一个问题,就是在存商品id的时候我将它使用了JSON.stringify的格式转换了!!!于是便爆出了500这个错误!!! 我将JSON.stringify的格式去除之后,它就正常显示了&…...
PostgreSQL教程(二十一):服务器管理(三)之服务器设置和操作
本章讨论如何设置和运行数据库服务器,以及它与操作系统的交互。 一、PostgreSQL用户账户 和对外部世界可访问的任何服务器守护进程一样,我们也建议在一个独立的用户账户下运行PostgreSQL。这个用户账户应该只拥有被该服务器管理的数据,并且…...
Linux运维_Bash脚本_编译安装GNU-Tools
Linux运维_Bash脚本_编译安装GNU-Tools Bash (Bourne Again Shell) 是一个解释器,负责处理 Unix 系统命令行上的命令。它是由 Brian Fox 编写的免费软件,并于 1989 年发布的免费软件,作为 Sh (Bourne Shell) 的替代品。 您可以在 Linux 和 …...
leetcode 121.买卖股票的最佳时机
声明:以下仅代表个人想法,非官方答案或最优题解! 题目: 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的…...

javaWebssh酒店客房管理系统myeclipse开发mysql数据库MVC模式java编程计算机网页设计
一、源码特点 java ssh酒店客房管理系统是一套完善的web设计系统(系统采用ssh框架进行设计开发),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0…...

vue3基础教程(2)——创建vue3+vite项目
博主个人微信小程序已经上线:【中二少年工具箱】。欢迎搜索试用 正文开始 专栏简介1. 前言2.node版本检测3.创建vue项目 专栏简介 本系列文章由浅入深,从基础知识到实战开发,非常适合入门同学。 零基础读者也能成功由本系列文章入门&#x…...
部署DNS 实战篇
二、DNS 部署 环境介绍 服务器3台、系统centos 安装软件 yum install -y bind bind-utils bind-chrootbind 主包bind-utils 客户端测试工具(host 、dig 、nslookup)bind-chroot chroot环境 禁锢dns服务器的工作目录caching-nameserver(rhel5提供…...

2023 2024年全国职业院校技能大赛中职组网络建设与运维赛项服务器Linux部分教程解析
欢迎合作 需要资料请私 Rocky 9 包含各种常考服务(包括新题型KVM等)...
Flask g对象和插件
四、Flask进阶 1. Flask插件 I. flask-caching 安装 pip install flask-caching初始化 from flask_cache import Cache cache Cache(config(CACHE_TYPE:"simple" )) cache.init_app(appapp)使用 在视图函数上添加缓存 blue.route("/") cache.cached(tim…...

26、Qt调用.py文件中的函数
一、开发环境 Qt5.12.0 Python3.7.8 64bit 二、使用 新建一个Qt项目,右击项目名称,选择“添加库” 选择“外部库”,点击“下一步” 点击“浏览”,选择Python安装目录下的libs文件夹中的“python37.lib”文件,点击“下…...

计算机网络实验一 网线制作
实验目的与要求: 实验目的 了解以太网网线(双绞线)和制作方法 实验内容 了解网线和水晶头 学习网线制作方法 实验环境和要求 网线 水晶头 压线钳 剥线钳 网线测试器 方法、步骤: 步骤一 准备工具和材料 步骤二 剥掉双绞线的外…...

android TextView 实现富文本显示
android TextView 实现富文本显示,实现抖音直播间公屏消息案例 使用: val tvContent: TextView helper.getView(R.id.tvContent)//自己根据UI业务要求,可以控制 图标显示 大小val levelLabel MyImgLabel( bitmap 自己业务上的bitmap )va…...

Linux常用命令(超详细)
一、基本命令 1.1 关机和重启 关机 shutdown -h now 立刻关机 shutdown -h 5 5分钟后关机 poweroff 立刻关机 重启 shutdown -r now 立刻重启 shutdown -r 5 5分钟后重启 reboot 立刻重启 1.2 帮助命令 –help命令 shutdown --help: ifconfig --help:查看…...
软考笔记--基于架构的软件开发方法
一.体系架构的设计方法概述 基于体系结构的软件设计方法ABSD是由体系结构驱动的,即指有构成体系结构的商业、质量和功能需求的组合驱动的。ABSD方法有3个基础。第1个基础是功能的分解。在功能分解中,ABSD方法使用已有的基于模块的内聚和耦合技术。第2个…...

CSS 盒子模型(box model)
概念 所有HTML元素可以看作盒子,在CSS中,"box model"这一术语是用来设计和布局时使用CSS盒模型本质上是一个盒子,封装周围的HTML元素,它包括:外边距(margin),边框(border),内边距(pad…...
KubeSphere 容器平台高可用:环境搭建与可视化操作指南
Linux_k8s篇 欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神! 题目:KubeSphere 容器平台高可用:环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...

定时器任务——若依源码分析
分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...
在四层代理中还原真实客户端ngx_stream_realip_module
一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...

srs linux
下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可…...
sqlserver 根据指定字符 解析拼接字符串
DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...
JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案
JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停 1. 安全点(Safepoint)阻塞 现象:JVM暂停但无GC日志,日志显示No GCs detected。原因:JVM等待所有线程进入安全点(如…...
iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈
在日常iOS开发过程中,性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期,开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发,但背后往往隐藏着系统资源调度不当…...
LCTF液晶可调谐滤波器在多光谱相机捕捉无人机目标检测中的作用
中达瑞和自2005年成立以来,一直在光谱成像领域深度钻研和发展,始终致力于研发高性能、高可靠性的光谱成像相机,为科研院校提供更优的产品和服务。在《低空背景下无人机目标的光谱特征研究及目标检测应用》这篇论文中提到中达瑞和 LCTF 作为多…...
如何配置一个sql server使得其它用户可以通过excel odbc获取数据
要让其他用户通过 Excel 使用 ODBC 连接到 SQL Server 获取数据,你需要完成以下配置步骤: ✅ 一、在 SQL Server 端配置(服务器设置) 1. 启用 TCP/IP 协议 打开 “SQL Server 配置管理器”。导航到:SQL Server 网络配…...

云安全与网络安全:核心区别与协同作用解析
在数字化转型的浪潮中,云安全与网络安全作为信息安全的两大支柱,常被混淆但本质不同。本文将从概念、责任分工、技术手段、威胁类型等维度深入解析两者的差异,并探讨它们的协同作用。 一、核心区别 定义与范围 网络安全:聚焦于保…...