Scala问题-如何运行程序包中的程序?

标签 scala

我很尴尬地问这个问题,但是我无法弄清楚如何运行定义在包中的scala程序。

例子:

package foo.bar {

    object Hello {
        def main(args:Array[String]) {
            println("Hello")
        }

    }
}

编译Hello.scala文件后,我得到了预期的目录结构
-- foo
|   `-- bar
|       |-- Hello$.class
|       `-- Hello.class

我尝试过的事情:
Nick@Macintosh-2 ~/Desktop/Programming/Scala master$ fsc Hello.scala 
Nick@Macintosh-2 ~/Desktop/Programming/Scala master$ scala Hello
no such file: Hello
Nick@Macintosh-2 ~/Desktop/Programming/Scala master$ scala -classpath foo/bar/ Hello
Exception in thread "main" java.lang.NoClassDefFoundError: Hello (wrong name: foo/bar/Hello)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:676)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:317)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:375)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:242)
    at scala.tools.nsc.ObjectRunner$.findClass(ObjectRunner.scala:29)
    at scala.tools.nsc.ObjectRunner$.classExists(ObjectRunner.scala:42)
    at scala.tools.nsc.MainGenericRunner$.main(MainGenericRunner.scala:149)
    at scala.tools.nsc.MainGenericRunner.main(MainGenericRunner.scala)
Nick@Macintosh-2 ~/Desktop/Programming/Scala master$ scala foo/bar/Hello
no such file: foo/bar/Hello
Nick@Macintosh-2 ~/Desktop/Programming/Scala master$ scala foo/bar/Hello.class 

我在网上看到很多示例,解释了如何打包文件。但是我看不到任何显示如何从命令行运行文件的文件。

任何帮助,将不胜感激。

最佳答案

scala foo.bar.Hello

关于Scala问题-如何运行程序包中的程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3191489/

相关文章:

scala - 在 Scala 中是否可以简化以下 if/else 语句?

scala - 如何使用spark-submit运行具有多个主要方法的jar?

java - 在 java 和 scala 中使用 protobufs 的问题

java - 使 sbt 重新编译受影响的 Java 源代码

list - 展平方法可接受的参数组合

scala - SBT:修复库依赖项的逐出警告是否明智

Scala 的 "This"和 MapLike

scala - 在编译时获取 Class<T>?

scala - 如何使用属性和类型类无形的案例类?

scala - 如何在 Scalding 中定义源字段