2011-10-01 61 views
4

我试图在Windows XP上运行使用Scala 2.9.1最终HelloWorld示例运行 “Hello World” 的样本:斯卡拉2.9无法在Windows XP

object HelloWorld extends App { 
    println("Hello, World!") 
} 

文件保存为Hello.scala

当我运行scalac Hello.scala时,没关系。

当我运行scala Hello,它写道:

"Exception in thread "main" java.lang.RuntimeException: Cannot figure out how to run target" 

这是荒谬的,我echo %PATH%包含:

C:\Program Files\Java\jdk1.6.0_25\bin; 
C:\Program Files\Java\jdk1.6.0_25\jre\lib; 
C:\Program Files\Java\jdk1.6.0_25\lib; 
C:\Program Files\scala\bin 

所以一切都似乎是在类路径中。

正在运行scala -classpath "%PATH%;." Hello也没有帮助。

请帮忙。

回答

8

是不是应该是scala HelloWorld

我可以在Mac瑞普你的问题太多:

$ scalac hello.scala 
$ scala HelloWorld 
Hello, World! 
$ scala Hello 
Exception in thread "main" java.lang.RuntimeException: Cannot figure out how to run target: Hello 
    at scala.sys.package$.error(package.scala:27) 
    at scala.tools.nsc.GenericRunnerCommand.scala$tools$nsc$GenericRunnerCommand$$guessHowToRun(GenericRunnerCommand.scala:38) 
    at scala.tools.nsc.GenericRunnerCommand$$anonfun$2.apply(GenericRunnerCommand.scala:48) 
    at scala.tools.nsc.GenericRunnerCommand$$anonfun$2.apply(GenericRunnerCommand.scala:48) 
    at scala.Option.getOrElse(Option.scala:109) 
    at scala.tools.nsc.GenericRunnerCommand.<init>(GenericRunnerCommand.scala:48) 
    at scala.tools.nsc.GenericRunnerCommand.<init>(GenericRunnerCommand.scala:17) 
    at scala.tools.nsc.MainGenericRunner.process(MainGenericRunner.scala:33) 
    at scala.tools.nsc.MainGenericRunner$.main(MainGenericRunner.scala:89) 
    at scala.tools.nsc.MainGenericRunner.main(MainGenericRunner.scala) 

scala期待一个类名或源名称。 scala Hello不解析为其中任何一个。

+0

我觉得你怎么称呼文件并不重要。我知道了。恩,嗯。也许我错过了一些东西。 – dhblah

+0

我认为你是对的。因为在编译后似乎没有文件Hello.class或类似的文件。但是如果没有编译就会出现另一个'问题',我的意思是'scala hello.scala'它没有报告任何问题,但它也不打印'hello world' - 这很奇怪。 – dhblah

+0

如果您运行'scala hello.scala',解释器将定义对象,但不会自动调用它。 –

-2

我认为这是一个CLASSPATH问题。你可以试试这个:

$ scala -classpath . Hello 
+1

这个问题已经得到解答,提问者明确排除了类路径问题... – cha0site