0022. 运行scala的脚本
程序员文章站
2022-04-30 22:14:02
...
如何写脚本
直接写脚本,然后用scala
命令去执行。在d
盘下创建test.scala
文件,内容如下:
import scala.io.Source
def file(path:String):Iterator[String] = Source.fromFile(path)("utf-8").getLines();
var iter = file("d:/test.scala")
iter.foreach(println)
执行scala d:/test.scala
命令。
使用main入口
import scala.io.Source
object hello extends App {
def file(path:String):Iterator[String] = Source.fromFile(path)("utf-8").getLines();
var iter = file("d:/test.scala")
iter.foreach(println)
}
这样在当前文件中的定义就必须放到hello
中了。scala
会自动执行hello
中的代码。
命令行参数
在启动scala
命令行时,可以设置scala
可用内存大小,如下两个命令任选其一:
scala -J-Xms64M -J-Xmx512M
env JAVA_OPS="-Xms64M -Xmx512M" scala
其中Xms
表示初始内存大小,Xmx
表示最大能使用的内存。
在scala
命令行中,可以设置classpath
,这样引入第三方的jar
包或者类会比较方便,如下:
scala -classpath "../project1/bin:../project2/classes"
进入REPL
后可以直接引入某个jar
文件或加载某个scala
文件:
:require DateUtils.jar
:load examp.scala
也可以在scala
命令行中直接指定进入REPL
后运行某个脚本:
scala -i examp.scala
在REPL
中可以直接调用sh
运行某个命令:
:sh ls -al
实际上调用的是sys.process
包中的代码,也可以如下执行:
import sys.process._
"ls -al"!
编译命令
scalac hello.scala
scala hello
编译类到指定目录:
scalac -classpath lib/DateUtils.jar -d ./classes src/com/examp/*
scala -classpath lib/DateUtils.jar com.examp.Main
反编译:
scalac -Xprint:parse hello.scala
scalac -Xprint:all hello.scala
作为脚本执行
#!/bin/sh
exec scala -savecompiled -classpath "lib/a.jar:lib/b.jar" "$0" "[email protected]"
!#
args.foreach(println)
执行sh test.scala
,会在第1
次执行时生成编译后的test.jar
文件,再次运行时如果没有修改过,会运行的更快。
上一篇: 使用Fastdfs,操作附件的上传与下载
下一篇: Web端实现定位(使用腾讯地图实现)
推荐阅读
-
支持start,stop,restart的运行脚本
-
支持start,stop,restart的运行脚本
-
DEDE模板中怎么运行php脚本和php变量的使用
-
php CLI方式运行的收集数据脚本过多导致PHP进程过多,有没有好的解决方案来替换?
-
windows批处理脚本bat命令解析【10】如何运行cmd命令3bat批处理文件中的注释
-
mysql - php在linux后台定时运行的脚本有哪些?
-
内存管理 - PHP脚本运行的时候,那些变量被放到了栈内存,那些被保存到了堆内存?
-
PHP获取脚本运行时间的应用_PHP教程
-
mysql - php在linux后台定时运行的脚本有哪些?
-
Python实现从脚本里运行scrapy的方法