[大数据从入门到放弃系列教程]在IDEA的Java项目里,配置并加入Scala,写出并运行scala的hello world

原文链接:http://www.cnblogs.com/blog5277/p/8615984.html

原文作者:博客园--曲高终和寡

点击下面菜单查看大数据入门全部教程

大数据从入门到放弃

网址:

http://www.cnblogs.com/blog5277/category/1179528.html

**********************************分割***********************************

其实按理说,Java项目是完全可以开发spark项目的,并不是一定需要scala来开发.

但是天不遂人愿,新项目里面用到了supermap的组件,他们的组件对scala支持的更好一点,就表现在,用scala的话,某函数的入口参数只有两个

但是用java的话就有4个

然后我还完全不知道这些参数指的是啥,

那没办法,只能换scala了(再加上spark就是基于scala开发的,技多不压身,学一学呗)

万万没想到,我在用IDEA在集成scala的时候,遇到了这么多坑(部分是因为我自己对scala的认知不够)

下面进入正题:

**********************************分割***********************************

一.下载IDEA的scala插件

1.个人推荐方式:

在IDEA-->设置-->插件-->搜索scala-->在仓库里找-->往下面翻一点,找到scala,看一下对应的版本号,记住这个版本号

然后在:

http://plugins.jetbrains.com/plugin/1347-scala

去这里下载对应的版本(下载完的zip不要解压缩):

经过非常非常漫长的下载....下载完了之后返回IDEA,在设置页面选择添加本地的插件:

选择你刚刚下载完的zip,添加,apply一下,确定就可以了,IDEA会提示你重启idea生效,你重启一下,插件就装完了.

2.不太推荐的方式...在idea-->设置-->插件-->搜索scala-->在仓库中搜索这里,其实可以直接安装的...

明明这么方便,我为啥不推荐呢...因为在国内,这个插件的下载速度也太慢了...还很容易失败(方法一也巨慢无比,但是毕竟是用浏览器/迅雷下的,不会失败,失败了也会断点续传),而在这里,极其容易失败...

开$$走PAC/全局代理/V屁N的方法我都试了,并不能加快下载速度,让人绝望...

二,开始scala的hello world

1.在项目上,右键,添加框架支持,选中出现的Scala

2.(这一项是可选项,还是建议选的)在maven里加入scala相关的jar包和编译组件插件

这里引用了 菩提树下的杨过 大神的教程

https://www.cnblogs.com/yjmyzz/p/4694219.html

<dependencies>
<!-- https://mvnrepository.com/artifact/org.apache.spark/spark-core -->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>2.3.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.scala-lang/scala-library -->
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>2.12.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.scala-lang/scala-compiler -->
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-compiler</artifactId>
<version>2.12.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.scala-lang/scala-reflect -->
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-reflect</artifactId>
<version>2.12.4</version>
</dependency> </dependencies> <build>
<plugins>
<plugin>
<groupId>org.scala-tools</groupId>
<artifactId>maven-scala-plugin</artifactId>
<version>2.15.2</version>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>

3.在项目main下,和java同一级,新建个文件夹叫scala,你在这个文件下下就可以新建scala项目了

4.这里介绍2种运行scala项目的方式,这里困扰了我好久...

5.用java方式调用

新建scala文件,用默认的方式建class文件,如下图:

在新建出来的scala文件里面,按 command + j (windows下应该是alt吧...不行就试试ctrl),或者手动照着下面敲也可以

输完后面的代码:

这个时候你会发现你运行不了...:

点它会出现控制台,然而这会你什么语法都不会..

所以没办法了,新建一个java文件来运行scala文件吧,可别忘了,scala也是jvm语言,再加上kotlin,这俩语言可是号称能和java项目"无缝衔接"的,scala项目当然能用java来运行了,如下图:

就把scala当一个java的类去调就行了,还是很方便的...的....吧...

6.直接运行scala文件

然而scala其实也有自己的运行方式,这点在创建文件的时候你要选择,不要用默认的class,要用object...(或者你把上面的class改成object也可以)

这样的话这里就有运行选项啦,注意区别,这里是object

好了,今天就到这了

[大数据从入门到放弃系列教程]在IDEA的Java项目里,配置并加入Scala,写出并运行scala的hello world的更多相关文章

  1. [大数据从入门到放弃系列教程]第一个spark分析程序

    [大数据从入门到放弃系列教程]第一个spark分析程序 原文链接:http://www.cnblogs.com/blog5277/p/8580007.html 原文作者:博客园--曲高终和寡 **** ...

  2. K8S从入门到放弃系列-(16)Kubernetes集群Prometheus-operator监控部署

    Prometheus Operator不同于Prometheus,Prometheus Operator是 CoreOS 开源的一套用于管理在 Kubernetes 集群上的 Prometheus 控 ...

  3. 大数据-03-Spark入门

    Spark 简介 行业广泛使用Hadoop来分析他们的数据集.原因是Hadoop框架基于一个简单的编程模型(MapReduce).这里,主要关注的是在处理大型数据集时在查询之间的等待时间和运行程序的等 ...

  4. php从入门到放弃系列-01.php环境的搭建

    php从入门到放弃系列-01.php环境的搭建 一.为什么要学习php 1.php语言适用于中小型网站的快速开发: 2.并且有非常成熟的开源框架,例如yii,thinkphp等: 3.几乎全部的CMS ...

  5. php从入门到放弃系列-04.php页面间值传递和保持

    php从入门到放弃系列-04.php页面间值传递和保持 一.目录结构 二.两次页面间传递值 在两次页面之间传递少量数据,可以使用get提交,也可以使用post提交,二者的区别恕不赘述. 1.get提交 ...

  6. php从入门到放弃系列-03.php函数和面向对象

    php从入门到放弃系列-03.php函数和面向对象 一.函数 php真正的威力源自它的函数,内置了1000个函数,可以参考PHP 参考手册. 自定义函数: function functionName( ...

  7. 办公软件Office PPT 2010视频教程从入门到精通系列教程(22课时)

    办公软件Office PPT 2010视频教程从入门到精通系列教程(22课时) 乔布斯的成功离不开美轮美奂的幻灯片效果,一个成功的商务人士.部门经理也少不了各种各样的PPT幻灯片.绿色资源网给你提供了 ...

  8. php从入门到放弃系列-02.php基础语法

    php从入门到放弃系列-02.php基础语法 一.学习语法,从hello world开始 PHP(全称:PHP:Hypertext Preprocessor,即"PHP:超文本预处理器&qu ...

  9. K8S 从入门到放弃系列文章目录(Kubernetes 1.14)

    1)软件环境 软件 版本 系统 Centos7.5 Kubernetes 1.14.1 Docker 18.09 Calico 3.6 Etcd 3.3.12 2)部署过程简单概要 三台master节 ...

随机推荐

  1. Linux 下挂载新硬盘方法

    Linux的硬盘识别: 一般使用”fdisk -l”命令可以列出系统中当前连接的硬盘 设备和分区信息.新硬盘没有分区信息,则只显示硬盘大小信息.   1.关闭服务器加上新硬盘   2.启动服务器,以r ...

  2. Eclipse 02: 安装spring tool suite插件

    在实际项目开发时,如果我们创建了一个spring文件,其实也就是个xml文件,如果没有集成spring的开发工具,创建的就是一个单纯的xml文件.安装spring插件以后创建spring配置文件会方便 ...

  3. Qt自定义界面

    https://blog.csdn.net/zhangxiaoyu_sy/article/details/78925221

  4. python_代码中调用java类

    1. 安装jpype (python调用java class文件用) 1.1. 自动安装:pip install jpype1 1.2. 手动方式安装jpype1 安装wheel:pip instal ...

  5. ES6 函数

    函数参数的扩展 默认参数 基本用法 function fn(name,age=17){ console.log(name+","+age); } fn("Amy" ...

  6. (转)spring中的拦截器(HandlerInterceptor+MethodInterceptor)

    1.  过滤器跟拦截器的区别 在说拦截器之前,不得不说一下过滤器,有时候往往被这两个词搞的头大. 其实我们最先接触的就是过滤器,还记得web.xml中配置的<filter>吗~ 你应该知道 ...

  7. svn 目录

    svn介绍 SVN与Git的区别 SVN服务的模式和多种访问方式 多种访问原理图解与优缺点 SVN安装部署 svn 部署 配置 配置svn用户及密码 配置svn用户及权限 svn 启动命令讲解 svn ...

  8. MySql 创建索引原则

    https://blog.csdn.net/csdnones/article/details/50412603 为了使索引的使用效率更高,在创建索引时,必须考虑在哪些字段上创建索引和创建什么类型的索引 ...

  9. 基于usb4java的usb通讯

    下载java API及lib库地址:http://usb4java.org/index.html 1.导入所需要的库: 2.添加配置文件:文件名:javax.usb.properties:内容:jav ...

  10. React 添加对 Less 的支持, 使用 create-react-app 脚手架

    ---恢复内容开始--- 参考博客与我自己的当前版本有一点出入, 所以就将 参考博客写到文章后面去了. 我的电脑:  系统: Ubuntu16.04, 1, 安装脚手架: create-react-a ...