zoukankan      html  css  js  c++  java
  • 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)在Global Liberaries里添加scala-sdk。
    (如果是通过IDEA安装的sdk则不需要,已经默认添加了)
     
     
    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 环境搭建及编译、打包
    2)IntelliJ IDEA + Maven创建Java Web项目
    3)运用Intellij创建自己的第一个Maven工程
    4)Maven 三种archetype说明

  • 相关阅读:
    ACM-ICPC 2017 西安赛区现场赛 A. XOR(线性基+线段树)
    ACM-ICPC 2017 西安赛区现场赛 K. LOVER II && LibreOJ#6062. 「2017 山东一轮集训 Day2」Pair(线段树)
    Codeforces Round #512 (Div. 2, based on Technocup 2019 Elimination Round 1) E. Vasya and Good Sequences(DP)
    URAL 2052 Physical Education(数位DP)
    Educational Codeforces Round 50 (Rated for Div. 2) F
    Codeforces Round #509 (Div. 2) F. Ray in the tube(思维)
    Codeforces Round #509 (Div. 2) E. Tree Reconstruction(构造)
    ACM-ICPC 2018 青岛赛区网络预赛 J. Press the Button(数学)
    ACM-ICPC 2018 焦作赛区网络预赛 K. Transport Ship(DP)
    [ Codeforces Round #549 (Div. 2)][D. The Beatles][exgcd]
  • 原文地址:https://www.cnblogs.com/wangjuns8/p/8438920.html
Copyright © 2011-2022 走看看