加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如何在不执行脚本并生成任何类文件的情况下检查Scala脚本?

发布时间:2020-12-16 09:01:38 所属栏目:安全 来源:网络整理
导读:可以在 Scala中编写脚本.所以你可以把它放入Hello.scala #!/bin/shexec scala $0 $@!#println("You supplied " + args.length + " arguments!") 并使其在Unix中可执行 chmod u+x Hello.scala 那么你可以简单地运行脚本 ./Hello.scala 如果没有语法错误,它将
可以在 Scala中编写脚本.所以你可以把它放入Hello.scala

#!/bin/sh
exec scala $0 $@
!#

println("You supplied " + args.length + " arguments!")

并使其在Unix中可执行

chmod u+x Hello.scala

那么你可以简单地运行脚本

./Hello.scala

如果没有语法错误,它将编译脚本并运行它.但是,当我只想在不执行脚本的情况下进行语法检查,这并不考虑这种情况.我不想修改脚本(即删除#!指令),我不希望生成任何* .class文件.

如何语法检查Scala脚本?

解决方法

我希望你真的想要一点点,只是检查正确的语法…可能你想知道的是,如果你实际编译你的文件将正确编译.这涉及到类型检查以及语法检查.

对于Scala源文件(即不是脚本),您可以指定-Ystop:refchecks命令行参数,以使编译器在代码生成开始之前停止(如果您真的只对句法正确性感兴趣,那么可以指定-Ystop:parser) .如果有错误,他们将在控制台上显示出完全相同的方式,就像您完全编译源一样.

对于Scala脚本,您还可以指定-Ystop:refchecks参数.如果这样做,那么您将看到在控制台上报告的编译错误,或者如果脚本中没有错误,您将看到以下内容,

$scala -Ystop:refchecks Hello.scala 
java.lang.ClassNotFoundException: Main

ClassNotFoundException表示没有生成任何类文件,并且脚本尚未被执行.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读