2011-10-10 37 views
9

我正在學習斯卡拉,我卡在你好世界腳本。斯卡拉:你好世界腳本不起作用

我hello.scala是:

Console.println("Hello World") 

我運行的腳本是這樣的:

scala hello.scala 

我得到一個奇怪的例外:

java.net.UnknownHostException: salil: salil: Name or service not known 
    at java.net.InetAddress.getLocalHost(InetAddress.java:1438) 
    at scala.tools.nsc.io.Socket$.localhost(Socket.scala:38) 
    at scala.tools.nsc.CompileSocket.getsock$1(CompileSocket.scala:169) 
    at scala.tools.nsc.CompileSocket.getOrCreateSocket(CompileSocket.scala:184) 
    at scala.tools.nsc.ScriptRunner.compileWithDaemon(ScriptRunner.scala:80) 
    at scala.tools.nsc.ScriptRunner.compile$1(ScriptRunner.scala:123) 
    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 

我SCALA_HOME是/ opt /scala-2.9.1.final
我的路徑中有$ SCALA_HOME/bin。
我JAVA_HOME是:/usr/java/jdk1.7.0

這是一個問題,我的設置,或者是由於某些問題使用Scala庫和JDK1.7?

+0

它可以與不同版本的Scala/JDK一起使用嗎? – Jus12

+0

你在哪個平臺上? – Mark

+0

我在Fedora 15上。 – Salil

回答

21

看來你的主機名不解析爲正確的IP地址,所以scala無法連接到編譯器服務。請檢查你的/ etc/hosts文件,它應該有一個記錄如下所示:

127.0.0.1 salil 

設置主機名/ IP映射後,您可以使用ping salil命令來確認你的設置是否正確。

+0

這是一個在OSX上不斷出現的問題(看起來相當明顯,* *在這種情況下是* OSX,給定了JAVA_HOME的值) –

+0

@Brian hsu,非常感謝。我會盡快嘗試。根據你的回答得到的答案,我確信它會起作用:-) – Salil

+6

'scala -nocompdaemon'是一種解決方法:它不啓動編譯的後臺進程。 – retronym