按照https://github.com/magarciaEPFL/scaladotnet上的 README 为简单的“Hello World”应用程序创建一个 Windows exe:
package hello.world
object Main {
def main(args: Array[String]) {
println("Hello, World!")
}
}
使用 README 中的命令构建 .exe:
scalacompiler.exe ^
-d C:\test\bin ^
-target:exe ^
-Ystruct-dispatch:no-cache ^
-Xassem-name HelloWorld.exe ^
-Xassem-extdirs C:\scala.net ^
-Xshow-class hello.world.Main ^
C:\test\src\HelloWorld.scala
在使用 64 位 Windows 7 Pro 时,我在尝试运行时收到此错误:
C:\test\bin>HelloWorld.exe
未处理的异常:System.IO.FileNotFoundException:无法加载文件或程序集“scalalib,版本=0.0.0.0,Culture=neutral,PublicKeyToken=null”或其依赖项之一。该系统找不到指定的文件。在主要(字符串 [] 参数)
Scala .Net 编译器目录直接位于路径中,但 HelloWorld.exe 似乎无法找到并加载该目录中的 scalalib.dll。根据下面的评论,将 HelloWorld.exe 直接复制到 C:\scala.net 目录中,然后从那里执行,可以按预期工作。但是,将 .exe 放入另一个目录,并将 C:\scala.net 目录作为 PATH 的一部分,则不会。
怎么了?