Scala从零開始:使用Intellij IDEA写hello world
引言
在之前的文章中,我们介绍了怎样使用Scala IDE也就是eclipse中集成的Scala开发插件来进行Scala语言程序的开发,在使用了一段时间之后,发现eclipse对Scala的支持并非非常好。用户体验比較差。比方联想速度比較慢等。因为在公司一直使用的Scala开发工具是Intellij IDEA(好吧。事实上我使用Scala IDE的目的就是想试一下这两个各有什么优缺点),各方面感觉还不错,所以在此介绍一下这个开发环境。
Intellij IDEA是jetbrain开发的一个IDE。用于Java、Groovy、Scala等的开发,自称是当前最智能的Java开发环境(The most intelligent IDE for Java platform),相对于其它开发工具来说,其对于代码检视、上下文理解、cvs/ant/maven/git的支持都比較完好。
好了。正式进入IDEA的介绍。
安装和配置
在IDEA的官方站点()下载安装包,眼下版本号是13.1.4(2014/5/21)。选择你适合的系统,这里以windows系统为例。然后选择Ultimate或者Community版本号。非常明显能够看出前者包括很多其它的功能可是收费(当然如今提供30天的免费试用),后者是社区版并且开源并且license是Apache 2.0。
作为底层的穷逼程序员我还是选择Community版本号来演示吧。
下载会得到一个.exe运行文件。当然,双击安装就可以,中间会提示选择安装路径blahblah,这里不做赘述。
安装之后打开,首先会弹出一个tab,如图:

这里会让你选择接下来的操作,是进行环境配置还是新建project还是导入project。这里我们选新建project:

从这里看到。并没有新建Scalaproject的选项,这说明要支持Scala开发。IDEA须要进行一定的配置。所以我们退回,选择Configure项,然后选Plugins:

点集左下角的“Install Intellij Plugins...”,出现下面界面,显示了当前能够安装的插件:

找到Scala,点集右側边栏中的Install Pluginbutton。骚等一会,安装就完毕啦。

当然有的时候由于网络不好或者其它的原因(你懂的),也可能出现让你长时间等待或者报connect timeout的错误。这时候你须要自己手动下载插件安装包(http://plugins.jetbrains.com/plugin/?
id=1347),蓝后在上一个界面中选择“Install plugin from disk”,在弹出的标签里选择你存放插件的路径。点OK就可以。

新建project
安装完Scala插件之后,回到新建project的地方,就能够看到有新建Scalaproject的选项了。我们选择No-SBT。从普通的项目開始。

在这里配置你的项目名称、存放路径、JDK路径、Scala Home、模块路径及其它。点击创建就可以打开新建的project。在这个地方能够得出搭建Scala开发环境须要在本机上安装JDK和Scala。

我们能够看到如今还没有源文件。仅仅有一个存放源文件的文件夹src以及存放project其它信息的杂项,在src上右键创建包com.doggie以及类HelloWorld,当然我们这里须要创建的是入口类,即Object。


像这篇文章(http://blog.csdn.net/asongoficeandfire/article/details/21490101)里一样,写一个main方法并加入一条打印语句:
在代码编辑器里右键,上下文菜单中有run HelloWorld的选项。点击就可以执行我们的代码啦!
打包
我们知道Scala代码编译得到的类也是执行在JVM上的,那么IDEA是否能支持打包呢?当然必须很支持啊。须要点击菜单条里的File->Project Structure或者点击右側对应的图标均可进入项目的配置界面。在左側选择Artifacts,点击绿色的+号,即新建一个打包操作,选中新建的unnamed打包项之后,能够配置jar包的名称,输出路径,还能够选择jar包中包括的东东,当然这里我们选择最简单的,即编译输出。


配置完毕后,我们就能够在菜单条中选择Build->Build Artifacts...。然后使用Build、ReBuild等命令打包啦。打包完毕后会在状态栏中显示“Compilation completed successfully...”的信息,去jar包输出路径下查看。就能拿到我们的jar包啦。
这个jar包使用方式和Java导出的jar包全然同样。仅仅是须要在执行时将Scala中的scala-compiler.jar增加到CLASSPATH中。
这里介绍了Eclipse Scala IDE集成环境的使用。你能够对照一下。
声明:本文为原创,禁止用于不论什么商业用途,转载请注明出处:http://blog.csdn.net/asongoficeandfire/article/details/26412493
Scala从零開始:使用Intellij IDEA写hello world的更多相关文章
- 从零開始学习OpenCL开发(一)架构
多谢大家关注 转载本文请注明:http://blog.csdn.net/leonwei/article/details/8880012 本文将作为我<从零開始做OpenCL开发>系列文章的 ...
- 从零開始学Swift之Hello World进化版
上节课,也就是昨晚啦,我们学习到从零開始学Swift之Hello World.那一节仅仅有一句代码,大家会认为不够过瘾. 那么这节课,就给大家来多点瘾货吧! 先上图! //var 代表变量的类型, s ...
- 关东升的《从零開始学Swift》即将出版
大家好: 苹果2015WWDC大会公布了Swift2.0,它较之前的版本号Swift1.x有非常大的变化.所以我即将出版<从零開始学Swift><从零開始学Swift>将在&l ...
- # 从零開始搭建Hadoop2.7.1的分布式集群
Hadoop 2.7.1 (2015-7-6更新),Hadoop的环境配置不是特别的复杂,可是确实有非常多细节须要注意.不然会造成很多配置错误的情况.尽量保证一次配置正确防止重复改动. 网上教程有非常 ...
- Bmob移动后端云服务平台--Android从零開始--(二)android高速入门
Bmob移动后端云服务平台--Android从零開始--(二)android高速入门 上一篇博文我们简介何为Bmob移动后端服务平台,以及其相关功能和优势. 本文将利用Bmob高速实现简单样例,进一步 ...
- 从零開始怎么写android native service?
从零開始怎么写android native service Android service对于从事android开发的人都不是一个陌生的东西,非常多人可能会认为服务非常easy. 服务是简单,由于复杂 ...
- Bmob移动后端云服务平台--Android从零開始--(一)何为Bmob
Bmob移动后端云服务平台--Android从零開始--(一)何为Bmob 在正式的项目开发中,单client不能满足我们的需求,须要实现client与服务端的连接. 而在编写Android服务端代码 ...
- 《PHP 5.5从零開始学(视频教学版)》内容简单介绍、文件夹
<PHP 5.5从零開始学(视频教学版)>当当网购买地址: http://product.dangdang.com/23586810.html <PHP 5.5从零開始学(视频教学版 ...
- 从零開始开发Android版2048 (二)获取手势信息
今天是尝试開始Android版2048小游戏的第二天.在今天,我主要学习了怎样获取用户在屏幕滑动的手势,以及对布局进行了一些小小的完好. 获取用户操作的手势(比方向左滑.向右滑等)主要用到了Gestu ...
随机推荐
- MVC5使用EF6 Code First--创建EF数据模型(一)
此Web应用程序演示如何使用Entity Framework 6和Visual Studio 2015创建ASP.NET MVC 5应用程序.本教程使用“Code First ”即代码先行.有关如何在 ...
- AJAX请求时status返回状态明细表(转)
转自:http://www.cnblogs.com/wangking/p/6530904.html AJAX请求时status返回状态明细表 readyState的五种状态2010-03-04 18: ...
- Java编程的逻辑 (9) - 条件执行的本质
本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http:/ ...
- linux网络管理基本命令
1.last 显示所有用户的登录情况 2.lastlog 显示那些用户有登录过,那些用户从来没登录过 3.traceroute 探测我指定网站的路径,来跟踪路由 .如:traceroute www ...
- Vue常用模板语法
常用模板语法 本篇将在上一篇的基础上记录文本渲染.表达式.过滤器以及常用指令的简单用法. 一.文本渲染 Vue支持动态渲染文本,即在修改属性的同时,实时渲染文本内容.同时为了提高渲染效率,也支持只 ...
- stm32+ESP8266AT指令详细说明
最近公司团队的项目用到ESP8266,使用的是stm32c8t6芯片,软件使用MDK,于是写下调试过程中的一些注意点.具体代码和涉及思路不能外泄,这里只给出我们调试过程中的注意的方面. 关于ESP82 ...
- echarts地图定时切换散点及多图表级联联动
本文目录 1. 摘要 2.引入ECharts以及地图相关json 3. 界面布局 4. js实现图形布局 5.定时循环jquery实现 6. 总结 1. 摘要 最近做项目遇到个统计相关需求,一个页面 ...
- spark优化之数据结构(减少内存)
官网是这么说的: The first way to reduce memory consumption is to avoid the Java features that add overhead, ...
- 020 shuffle的重要作用,以及分区的实践
一:学shuffle原理的必要性 1.说明 学习shuffle的作用是可以对程序进行优化. 在shuffle这个部分有三个部分需要注意: 分区 排序 分组 这个可以进行优化. 二:分区的实践 1.说明 ...
- 给定一种 pattern(模式) 和一个字符串 str ,判断 str 是否遵循相同的模式。 这里的遵循指完全匹配,例如, pattern 里的每个字母和字符串 str 中的每个非空单词之间存在着双向连接的对应模式。
这个是LeetCode上的一道题目.本机上运行时正确的,但是LeetCode上显示是错误的,所以没有办法了只能记录在博客上了. 我的想法是先把pattern和str都转化成数组.例如"abb ...