scala - 当scala文件有中文注释字符时如何设置scala编译器

标签 scala

我用中文注释了 Rational.scala 文件的代码行,如下所示:

var a = new Rational(-4,6)
var b = new Rational(3,-9)
var c = a + a * b //满足运算符的优先级别 

当我运行命令时:

scala Rational.scala

它抛出异常。虽然我关闭评论或用英文评论,但没关系!

我需要配置什么?

非常感谢

仅供引用:这是异常(exception):

java.lang.ClassNotFoundException: Main (args = , classpath = d:\DOCUME~1\LUJUNM~1\LOCALS~1\Temp\scalascript3969467400078546162.tmp;C:\Program%20Files\
Java\jdk1.6.0_20\jre\lib\resources.jar;C:\Program%20Files\Java\jdk1.6.0_20\jre\lib\rt.jar;C:\Program%20Files\Java\jdk1.6.0_20\jre\lib\jsse.jar;C:\Prog
ram%20Files\Java\jdk1.6.0_20\jre\lib\jce.jar;C:\Program%20Files\Java\jdk1.6.0_20\jre\lib\charsets.jar;C:\Program%20Files\Java\jdk1.6.0_20\jre\lib\ext\
dnsns.jar;C:\Program%20Files\Java\jdk1.6.0_20\jre\lib\ext\localedata.jar;C:\Program%20Files\Java\jdk1.6.0_20\jre\lib\ext\sunjce_provider.jar;C:\Progra
m%20Files\Java\jdk1.6.0_20\jre\lib\ext\sunmscapi.jar;C:\Program%20Files\Java\jdk1.6.0_20\jre\lib\ext\sunpkcs11.jar;C:\SCALA-~1.FIN\bin\..\lib\jline.ja
r;C:\SCALA-~1.FIN\bin\..\lib\scala-compiler.jar;C:\SCALA-~1.FIN\bin\..\lib\scala-dbc.jar;C:\SCALA-~1.FIN\bin\..\lib\scala-library.jar;C:\SCALA-~1.FIN\
bin\..\lib\scala-swing.jar;C:\SCALA-~1.FIN\bin\..\lib\scalap.jar;C:\Program%20Files\Java\jdk1.6.0_20\bin;C:\Program%20Files\Java\jdk1.6.0_20\lib)
        at scala.tools.nsc.util.ScalaClassLoader$URLClassLoader.run(ScalaClassLoader.scala:103)
        at scala.tools.nsc.ObjectRunner$.run(ObjectRunner.scala:33)
        at scala.tools.nsc.ObjectRunner$.runAndCatch(ObjectRunner.scala:40)
        at scala.tools.nsc.ScriptRunner.scala$tools$nsc$ScriptRunner$$runCompiled(ScriptRunner.scala:171)
        at scala.tools.nsc.ScriptRunner$$anonfun$runScript$1.apply(ScriptRunner.scala:188)
        at scala.tools.nsc.ScriptRunner$$anonfun$runScript$1.apply(ScriptRunner.scala:188)
        at scala.tools.nsc.ScriptRunner$$anonfun$withCompiledScript$1.apply$mcZ$sp(ScriptRunner.scala:157)
        at scala.tools.nsc.ScriptRunner$$anonfun$withCompiledScript$1.apply(ScriptRunner.scala:131)
        at scala.tools.nsc.ScriptRunner$$anonfun$withCompiledScript$1.apply(ScriptRunner.scala:131)
        at scala.tools.nsc.util.package$.waitingForThreads(package.scala:26)
        at scala.tools.nsc.ScriptRunner.withCompiledScript(ScriptRunner.scala:130)
        at scala.tools.nsc.ScriptRunner.runScript(ScriptRunner.scala:188)
        at scala.tools.nsc.ScriptRunner.runScriptAndCatch(ScriptRunner.scala:201)
        at scala.tools.nsc.MainGenericRunner.runTarget$1(MainGenericRunner.scala:58)
        at scala.tools.nsc.MainGenericRunner.process(MainGenericRunner.scala:80)
        at scala.tools.nsc.MainGenericRunner$.main(MainGenericRunner.scala:89)
        at scala.tools.nsc.MainGenericRunner.main(MainGenericRunner.scala)

最佳答案

您的问题是您使用的是 Windows,而 Windows 的默认字符集不是 UTF-8。

这样做:

  1. 确保您知道编写源文件的字符集是什么。最好是 UTF-8。

  2. 使用参数-encoding指定要使用的字符集。例如,scalac -enconding utf8 Rational.scala

关于scala - 当scala文件有中文注释字符时如何设置scala编译器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10490563/

相关文章:

scala - 当 x.toString 失败时,ScalaRunTime.stringOf(x) 如何不失败?

scala - 自动为案例类生成案例对象

java - 创建嵌套类时,不是构造函数的合法前缀

Scala的函数作为参数的用法

scala - 逆变和 val

Scala - 简单的契约设计

scala - Maven 构建错误(Scala + Spark):object apache is not a member of package org

scala - Redis 中的 "Null reply"到底是什么?

scala:如何在不调用的情况下在某处传递 0-arg 函数?

scala - 如何在 Dispatch 中获取失败请求的值?