【问题标题】:Running scala shell script : Nothing happens运行 scala shell 脚本:没有任何反应
【发布时间】:2015-03-23 22:13:29
【问题描述】:

如果我在命令行中运行以下脚本(另存为 jarAccessTest.sh,它是一个可执行文件),则没有任何反应:

#!/bin/sh
# exec scala -classpath "/usr/local/google/home/vvasuki/sanskritnlpjava/target/sanskritnlp-1.0-SNAPSHOT.jar " "$0" "$@"
exec scala "$0" "$@"
!#

# import sanskritnlp.transliteration._;
print "hello"

我只看到没有输出。没有。命令提示符也不返回。

这里发生了什么?我必须按 Ctrl+C 来停止正在发生的事情。

编辑:在 ubuntu 14.04 中使用 scala 2.9:http://i.imgur.com/VMYKnUX.png

【问题讨论】:

  • 怎么会有人否决源文本中带有“sanskritnlp”的问题?

标签: scala shell


【解决方案1】:

您的 Scala 预打包版本来自很久以前,来自遥远的银河系。

最好从网站上下载最新的 2.11.6。

scala 运行器运行脚本时,它会启动一个编译服务器进程。如果该进程出现故障,您可能必须将其杀死或运行fsc -shutdown 以很好地要求它离开。

您可以尝试在脚本中添加-nc 选项以消除该因素,即scala -nc 表示没有编译守护进程。

最后,如果您只是测试您的库,则更常见的是运行 scala -cp my.jar 并从 REPL 进行试验。或者,如果您使用的是 SBT,请从那里启动控制台。

匿名建议添加:“他们真的让你在这里输入任何内容”

我将附加来自另一个答案的建议,以运行fsc -verbose。请注意,他们威胁要停止支持fsc,因为它有一些问题,当它们发生时会让人抓狂。出于这个原因,我更喜欢scala -nc 进行简短测试,而scalac -d script.jar script.scala 脚本是App

【讨论】:

  • 谢谢!实际上,从具有 scala 2.11.6 (i.imgur.com/pwCx5UX.png) 的单独 Ubuntu 14.04 计算机进行测试时,我会收到适当的错误消息。 PS:我没有测试我的 jar - 相反,我正在尝试编写一个使用该 jar 中定义的类的脚本。嗯..现在如果我能让导入线正常工作(“错误:未找到:对象 sanskritnlp”)!
  • 在出现问题的计算机上,升级到2.11.6后问题仍然存在。 fsc -shutdown 没有返回。 -nc 技巧奏效了。
【解决方案2】:

原始计算机上的问题从未真正解释过,尽管有人指出使用“-nc”标志有效。

最初的问题可能与编译守护进程打开端口的能力有关。来自 fsc 的手册页:

第一次执行时,守护程序会自动启动。 在随后的运行中,可以重复使用相同的守护进程,从而加快编译速度。该工具在重复时特别有效 使用相同的类路径编译,因为 编译守护进程可以重用编译器实例。

检查这是否是问题的一种方法是使用 verbose 标志自行运行 fsc。例如,使用

制作一个名为 hello.scala 的脚本

println("你好")

在里面运行

fsc -verbose hello.scala

如果这显示编译服务器无法连接,那么您已经确定了您的问题。在这种情况下,首先要尝试检查您的主机文件是否符合犹太教规。

(我遇到了类似的问题,这是我发现的)。

【讨论】:

    【解决方案3】:

    您需要对代码进行一些更改,主要是在 # 行,这不是 scala 中的注释。

    #!/bin/sh
    # exec scala -classpath   "/usr/local/google/home/vvasuki/sanskritnlpjava/target/sanskritnlp-1.0-  SNAPSHOT.jar " "$0" "$@"
    exec scala "$0" "$@"
    !#
    
    // import sanskritnlp.transliteration._;
    print ("hello\n")
    

    【讨论】:

    • 删除所有注释行没有帮助。相同(非)结果。 PS:您答案中的代码格式不正确..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多