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()'

控制檯輸出結果:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章