Ubuntu下安装Scala

前言

弄了一下终于成功装上了,这里对此进行一下总结

安装虚拟机

VMware虚拟机安装Ubuntu(超详细图文教程)_vmware安装ubuntu-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/qq_43374681/article/details/129248167Download Ubuntu Desktop | Download | Ubuntuicon-default.png?t=N7T8https://ubuntu.com/download/desktop安装redhat虚拟机_怎么安装redhat的虚拟机-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/weixin_64066303/article/details/130287039?spm=1001.2014.3001.5501有了前面安装红帽的经验,我相信Ubuntu的安装是得心应手了。

安装Java

Ubuntu下安装Java_ubuntu安装java-CSDN博客icon-default.png?t=N7T8https://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)icon-default.png?t=N7T8https://www.scala-lang.org/download/all.html(Spark)学习进度十五(虚拟机(ubuntu)安装scala和使用) - 细胞何 - 博客园 (cnblogs.com)icon-default.png?t=N7T8https://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博客icon-default.png?t=N7T8https://blog.csdn.net/weixin_52350007/article/details/120569898推测是版本不兼容的问题,然后我找到了一个选择版本的

JDK Compatibility | Scala Documentation (scala-lang.org)icon-default.png?t=N7T8https://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)icon-default.png?t=N7T8https://www.hostbuf.com/这里还有一个软件,感兴趣的小伙伴可以尝试一下,在windows系统下连接Linux的虚拟机。

其中“名称”是自己起,“主机”是用ifconfig指令查看,“端口”默认是22,认证是root,密码就是root的密码。密码不知道可以设置一下。

【ubuntu】设置root用户密码_ubuntu设置root用户密码-CSDN博客icon-default.png?t=N7T8https://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 | Oracleicon-default.png?t=N7T8https://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)icon-default.png?t=N7T8https://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

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

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

相关文章

链接生成二维码(vue-qriously)

一、安装vue-qriously npm i vue-qriously -S二、全局mian.js中引入 import Vue from vue import VueQriously from vue-qriously Vue.use(VueQriously)三、使用 <template><div><qriously :value"qrData" :size"200" /></div>…

求排列的逆序数(c++题解)

题目描述 在Internet上的搜索引擎经常需要对信息进行比较&#xff0c;比如可以通过某个人对一些事物的排名来估计他&#xff08;或她&#xff09;对各种不同信息的兴趣&#xff0c;从而实现个性化的服务。 对于不同的排名结果可以用逆序来评价它们之间的差异。考虑1,2,…,n的…

HTML笔记2

11&#xff0c;路径 <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1.0"> <title>Document</title> <…

每日一练——二分查找

#include<stdio.h>int main() {char arr[] {1,2,3,4,5,6,7,8,9,10};int k 7;//查找kint left 0;int right sizeof(arr) / sizeof(arr[0]);int mid (left right) / 2 ; //中间元素的下标while(left<right){if&#xff08;arr[mid] < k&#xff09;{left mid …

第9章:Nginx高级应用场景《Nginx实战:从入门到精通》

随着Web技术的持续演进和业务需求的不断升级&#xff0c;Nginx早已超越了简单的Web服务器角色&#xff0c;成为了处理复杂网络请求和流量管理的多面手。在这一章中&#xff0c;我们将深入挖掘Nginx在高级应用场景中的无限潜力&#xff0c;包括构建坚如磐石的高可用性架构、实施…

源代码加密、源代码防泄漏c/c++与git服务器开发环境

源代码加密对于很多研发性单位来说是至关重要的&#xff0c;当然每家企业的业务需求不同所用的开发环境及开发语言也不尽相同&#xff0c;今天主要来讲一下c及git开发环境的源代码防泄密保护方案。 企业源代码泄密场景一、 在很多嵌入式开发企业中使用的c/c开发语言&#xff…

android开发者文档,推荐一个GitHub项目

Android相关 Android部分我就不分几大块了。直接列举&#xff0c;但是列举到的每一项都是面试经常会问到并且会延伸问的&#xff0c;所以需要深入的去研究。 四大组件有哪些&#xff0c;说出你对他们在Android系统中的作用和理解。Activity生命周期&#xff0c;A启动B两个页面…

定制你的Nginx世界:通过Dockerfile轻松修改默认首页,玩转容器化Web服务器

在云原生时代&#xff0c;Docker已成为众多开发者和运维人员手中的一把利器。借助Docker&#xff0c;我们可以快速构建、部署和运行应用程序&#xff0c;而其中的Dockerfile更是扮演着至关重要的角色&#xff0c;它如同一份详细的说明书&#xff0c;指导Docker如何构建自定义镜…

【设计模式】(二)设计模式六大设计原则

一、 设计原则概述 设计模式中主要有六大设计原则&#xff0c;简称为SOLID &#xff0c;是由于各个原则的首字母简称合并的来(两个L算一个,solid 稳定的)&#xff0c;六大设计原则分别如下&#xff1a; ​ 1、单一职责原则&#xff08;Single Responsibitity Principle&#…

除了Gamma和tome,还有哪些值得推荐的ai写ppt工具?

如果要说时下职场中最受欢迎的ai工具&#xff0c;那一定非ai写ppt莫属&#xff0c;即使用各类基于AI人工智能技术的软件&#xff0c;来帮我们直接生成ppt&#xff0c;免去制作PPT的各个中间环节&#xff0c;包括&#xff1a;梳理框架、搜集素材、搜集图片、排版美化等&#xff…

EasyRecovery数据恢复软件2024免费试用版下载

EasyRecovery数据恢复软件有免费试用版。用户可以免费下载并扫描丢失的文件&#xff0c;通过免费的扫描功能查看需要恢复的文件是否可以进行恢复。但是&#xff0c;当需要进行文件恢复操作时&#xff0c;需要付费购买相应的版本才可解锁全部功能。 此外&#xff0c;EasyRecove…

Python处理表格数据库之Agate使用详解

概要 您是否有时觉得在处理表格数据时感到不知所措? 也许你在处理一个大型 CSV 文件,遇到了各种数据不一致的问题,或者需要验证数据,确保其准确无误才能进行下一步分析。 传统的数据分析库或许功能强大,但学习曲线陡峭,用起来有点杀鸡用牛刀的感觉。 这时,有一个更…

MFC资源记录

记录MFC的相关资源&#xff1a; MFC教程视频&#xff0c;网盘提取码&#xff1a;lty2VC中文MSDN手册MFC类库详解CHM格式电子书还可以查看MFC的MSDN《深入浅出MFC》

steam搬砖项目,“一个月赚8K+”真的假的?

Steam搬砖项目相对轻资产&#xff0c;可以在居家和兼职的情况下进行&#xff0c;适合上班族等有限时间的人群。 然而&#xff0c;即使Steam搬砖项目具有较高的收益率和稳定性&#xff0c;也需要投入一定的时间和努力来学习和理解其中的规则和技巧。有些游戏或道具的价格会随着时…

【AI视野·今日Sound 声学论文速览 第五十一期】Mon, 4 Mar 2024

AI视野今日CS.Sound 声学论文速览 Mon, 4 Mar 2024 Totally 6 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Sound Papers VoxGenesis: Unsupervised Discovery of Latent Speaker Manifold for Speech Synthesis Authors Weiwei Lin, Chenhang He, Man Wai Mak, …

倍增算法C++

倍增 倍增算法是一种优化算法&#xff0c;通常用于某些需要高效计算指数幂的场景。它基于分治的思想&#xff0c;通过反复求平方来实现快速计算指数幂的目的。在实际应用中&#xff0c;倍增算法经常用于解决最近公共祖先问题、二分查找等。 1、快速幂详解 ksm核心代码 倍增就是…

day04-SpringBootWeb入门

一、SpringBootWeb快速入门 1 需求 需求&#xff1a;基于 SpringBoot 的方式开发一个 web 应用&#xff0c;浏览器发起请求 /hello后&#xff0c;给浏览器返回字符串“Hello World ~”。 2 开发步骤 第1步&#xff1a;创建 SpringBoot 工程项目 第2步&#xff1a;定义 HelloC…

【Python】3. 基础语法(2)

顺序语句 默认情况下, Python 的代码执行顺序是按照从上到下的顺序, 依次执行的. print("1") print("2") print("3")执行结果一定为 “123”, 而不会出现 “321” 或者 “132” 等. 这种按照顺序执行的代码, 我们称为 顺序语句. 这个顺序是很关…

redis主从架构

Redis主从架构 单节点Redis的并发能力是有上限的&#xff0c;要进一步提高redis的并发能力&#xff0c;就需要搭建主从集群&#xff0c;实现读写分离。 修改每个文件夹内的配置文件&#xff0c;将端口分别修改为7001、7002、7003&#xff0c;将rdb文件保存位置都修改为自己所在…

嵌入式学习记录——线程

线程基本概念: 线程:线程是一个轻量级的进程,位于进程空间内部,一个进程中可以创建多个线程 1.线程创建: 线程独占栈空间,文本段、数据段和堆区与进程共享 2.线程调度: 与进程调度是一样的 宏观并行,微观串行 3.线程消亡: 与进程消亡是一样的 4.进程和线程…