在重新尝试了 N 天的 Gnome 后,我回到了久违的 KDE,随即发现:Scala 无法执行脚本了
开始以为是环境变量的问题,但执行 scala 命令,很顺利的进入了交互模式。随后检查执行权限、升级 java、查看其它工具如 groovy 之类,均无果。
Google 之,见一帖 problem running scala script。一读,居然是本机环回的设置问题。于是打开 /etc/hosts 试在 127.0.0.1 那行末尾加上本机名,故障解决。对于多数使用自动网络配置的人来说,一般不会碰到这样的问题,但是对于服务器或重要的工作站,我有时倾向于使用最简洁的参数手动配置,很可能就不会在 hosts 文件里加多余的本机名。(如果装了 Oracle 的机器情况会不同,但是 Oracle 的一贯作风都是只要能工作,难看不难看无所谓……)
PS. Scala 的这一个故障着实让我很恼火,因为没有哪个 Java 程序员在遇到这样的问题时会怀疑到网络设置的。事实上在安装 Scala 的过程中,所有的过程和说明“似乎都指出 Scala 唯一的依赖是 JDK”,然而这个错误却明确的指出:Scala 的“部分组件依赖于底层环境”。说实话,我没有想到像 Scala 这样富有学术气息的语言会容忍这样现实的实现(我猜他们是为了性能考量,但 Scala 不是 Oracle,我还是希望它能更加“利落”些)。
PS II. 这个问题的故障点在于编译过程,Java 进程会在 Scala 编译器的指引下不断生成一模一样的子进程而没有任何报错,如果发生在后台,在耗清服务器资源之前,你不会知道发生了什么!