Scala & IntelliJ IDEA环境搭建升级版:在JAVA中调用Scala的helloworld

---------------------

前言

---------------------

项目关系,希望用Spark GraphX做数据分析及图像展示,但前提是得会spark;spark是基于scala的,scala是基于JAVA的……所以,要想用Spark GraphX,技术堆栈大体上应该是这样的:Java -> Scala -> Spark -> Spark GraphX。

JAVA都这么多年了……就不说了,我们从学习Scala开始。

--------------------

说明

--------------------

1)Java配置完成,版本在1.8以上;

因为Scala是基于Java开发的,编译之后生成的class文件也可以远行在JVM上,并被Java调用。

2)IntelliJ IDEA已安装完成(我的版本是:2017.2.2)

3)开发环境:MacOS

--------------------

安装、配置Scala

--------------------

1. 安装Scala SDK

先到http://www.scala-lang.org/download/ 下载压缩包scala-2.12.4.tar并解压。

(也可以在IntelliJ IDEA 创建第一个scala源文件时,根据提示安装,详见《Scala & IntelliJ IDEA:环境搭建、helloworld》)

配置环境变量:

1)vi /etc/profile

在末尾添加:

export SCALA_HOME=/Users/yp-tc-m-2755/Documents/software/scala-2.12.4

export PATH=$PATH:$SCALA_HOME/bin

保存退出。

2)输入命令,使其生效:

source /etc/profile

3)检验(如果没生效,则重启终端):

$ scala -version

Scala code runner version 2.12.4 -- Copyright 2002-2017, LAMP/EPFL and Lightbend, Inc.

2. 安装Scala插件

依次:IntelliJ IDEA -> Preferences -> Plugins -> Browse repositories...

(或是在IntelliJ IDEA欢迎页面,右下角点击:Configure->Preferences)

1)在搜索框输入scala

2)在列表中选择Scala

3)点击右侧框的“Install”按钮(下图是安装完成之后的样子)

--------------------

创建Java Web项目

--------------------

1. 使用MAVEN框架,创建web项目

我选择的是:maven-archetype-webapp。

不为别的,就是因为会自动创建一个index.jsp,方便试验tomcat是否正常启动……

目录结构大概是这个样子的:

2. 手动添加java,scala文件夹

1)在main目录下新建java,scala文件夹

点击File->project structure->Modules

右键单击main文件夹,选择“New Folder”,分别创建java和scala文件夹。

2)分别选中java和scala,点击上面的按钮“Sources",

这样,就标记了这两个文件夹下的文件都是源码。

否则,想要创建源文件的时候,右键java或scala,在new->file里没有Java Class和Scala Class选项。

3. 在pom.xml里添加对scalas的依赖

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

<modelVersion>4.0.0</modelVersion>

<groupId>wangjun</groupId>

<artifactId>ScalaInJava</artifactId>

<packaging>war</packaging>

<version>1.0-SNAPSHOT</version>

<name>ScalaInJava Maven Webapp</name>

<url>http://maven.apache.org</url>

<dependencies>

<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<version>3.8.1</version>

<scope>test</scope>

</dependency>

<dependency>

<groupId>org.scala-lang</groupId>

<artifactId>scala-library</artifactId>

<version>2.12.4</version>

</dependency>

<dependency>

<groupId>org.scala-lang</groupId>

<artifactId>scala-compiler</artifactId>

<version>2.12.4</version>

</dependency>

<dependency>

<groupId>org.scala-lang</groupId>

<artifactId>scala-reflect</artifactId>

<version>2.12.4</version>

</dependency>

<dependency>

<groupId>log4j</groupId>

<artifactId>log4j</artifactId>

<version>1.2.12</version>

</dependency>

<dependency>

<groupId>com.google.collections</groupId>

<artifactId>google-collections</artifactId>

<version>1.0</version>

</dependency>

</dependencies>

<build>

<finalName>ScalaInJava</finalName>

<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>

</project>

注意:如果不添加<plugin>,在编译的时候会出现错误:no prefix ‘scala‘ 或 找不到符号

4. 创建源文件:

1)在java目录下创建HelloJava.java,内容如下:

public class HelloJava {

public static void main(String[] args) {

System.out.println("Hello : Java");

HelloScala helloScala = new HelloScala();

helloScala.sayHello( " my first scala!");

}

}

2)在scala目录下创建HelloScala.scala,内容如下:

class HelloScala {

def sayHello(x: String): Unit = {

println("hello, " + x)

}

}

可以看到,在HelloJava里调用了HelloScala对函数sayHello。

5. 运行:

在HelloJava.java编辑框任意位置,右键单击,选择:Run ‘HelloJava.main()‘

控制台输出结果:

OK,可以开始Scala之旅了!

--------------------

参考

--------------------

1)scala intellij idea 环境搭建及编译、打包

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

2)IntelliJ IDEA + Maven创建Java Web项目

https://www.cnblogs.com/davidgu/p/5887938.html

3)运用Intellij创建自己的第一个Maven工程

http://blog.csdn.net/zhangxing52077/article/details/69525832

4)Maven 三种archetype说明

http://blog.csdn.net/cx1110162/article/details/78297654

原文地址:https://www.cnblogs.com/wangjuns8/p/8438920.html

时间: 2024-11-11 22:52:21

Scala & IntelliJ IDEA环境搭建升级版:在JAVA中调用Scala的helloworld的相关文章

scala + intellij idea 环境搭建及编译、打包

大数据生态圈中风头正旺的Spark项目完全是采用Scala语言开发的,不懂Scala的话,基本上就没法玩下去了.Scala与Java编译后的class均可以运行于JVM之上,就好象.NET中F#与C#的关系.下面进入正题: 1.下载scala sdk http://www.scala-lang.org/download/ 直接到这里下载sdk,目前最新的稳定版为2.11.7,下载后解压就行 (后面在intellij idea中创建.scala后缀源代码时,ide会智能感知并提示你设置scala

scala 入门Eclipse环境搭建及第一个入门经典程序HelloWorld

IDE选择并下载: scala for eclipse 下载: http://scala-ide.org/download/sdk.html 根据自己的机器配置选择合适的IDE: 我这里选择For scala2.11 版本的Windows 32 bit的IDE,单击即下载. scala安装: 安装包下载地址,进入官网:http://www.scala-lang.org/ 进入DOWNLOAD下,选择scala 2.11 版本,单击下载: Windows上安装scala 2.11: 单击运行sca

spark2.x由浅入深深到底系列六之RDD java api调用scala api的原理

RDD java api其实底层是调用了scala的api来实现的,所以我们有必要对java api是怎么样去调用scala api,我们先自己简单的实现一个scala版本和java版本的RDD和SparkContext 一.简单实现scala版本的RDD和SparkContext class RDD[T](value: Seq[T]) {   //RDD的map操作   def map[U](f: T => U): RDD[U] = {     new RDD(value.map(f))   

java中调用dll文件的两种方法

一中是用JNA方法,另外是用JNative方法,两种都是转载来的, JNA地址:http://blog.csdn.net/shendl/article/details/3589676   JNative地址:http://www.jb51.net/article/35232.htm JNA方法: 介绍 给大家介绍一个最新的访问本机代码的Java框架—JNA. JNA(Java Native Access)框架是一个开源的Java框架,是SUN公司主导开发的,建立在经典的JNI的基础之上的一个框架

如何在Java中调用Python代码

有时候,我们会碰到这样的问题:与A同学合作写代码,A同学只会写Python,而不会Java, 而你只会写Java并不擅长Python,并且发现难以用Java来重写对方的代码,这时,就不得不想方设法“调用对方的代码”. 下面我将举一些简单的小例子,借此说明:如何在Java中调用Python代码. 看懂这篇文章只需要具备: 熟悉Java的基本语法 懂一点点Python 主要内容如下: 什么是Jython? 一个HelloPython程序 在Jvm中执行Python脚本 仅在Java中调用Python

在java中调用Oracle存储过程

在java中调用Oracle存储过程 本文介绍如何通过java来调用Oracle的存储过程 1. 编写存储过程 CREATE OR REPLACE PROCEDURE sp_pro3(sp_name VARCHAR2,sp_sal NUMBER ) IS BEGIN --根据用户名修改工资 UPDATE emp SET sal=sp_sal WHERE ename=sp_name; END; 引入jdbc6.jar,编写测试类Test.java package testOraclePro; im

java中调用kettle转换文件

java中调用kettle转换文件 通过命令行也可以调用,然后java中调用命令行代码也可以:这样没有和java代码逻辑无缝集成.本文说明kettle5.1中如果通过其他API和java代码无缝集成:网上大多数资料都是低版本的,在kettle5.x中已经不能运行. 1.       需要哪些jar文件 以kettle开头的是必须,上图最下面三个也要:红色框中的两个是我测试转换用到的,分别是生成UUID和文件. 要是少了jar文件,运行程序一定报错,大家根据错误到kettle安装目录LIB中找相应

在java中调用python方法

1.http://sourceforge.net/projects/jython/下载jython包,把其中的jython.jar添加到工程目录 示例: 1.摘自:http://blog.csdn.net/anbo724/article/details/6608632 1.在java类中直接执行python语句 import javax.script.*; import org.python.util.PythonInterpreter; import java.io.*; import sta

oracle pl/sql之在java中调用带有输入输出参数的oracle存储过程

只需注意一点输出参数是用CallableStatement里面的registerOutParameter方法注册进去 存储过程: import java.sql.CallableStatement;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.SQLException;import java.sql.Types; //在java中