Tôi xấu hổ khi hỏi điều này, nhưng tôi không thể tìm ra cách để chạy chương trình scala được định nghĩa là nằm trong gói.Sự cố Scala - cách chạy chương trình có trong gói?
Ví dụ:
package foo.bar {
object Hello {
def main(args:Array[String]) {
println("Hello")
}
}
}
Sau khi biên dịch tập tin Hello.scala, tôi nhận được cấu trúc thư mục dự kiến
-- foo
| `-- bar
| |-- Hello$.class
| `-- Hello.class
Những điều tôi đã cố gắng:
[email protected] ~/Desktop/Programming/Scala master$ fsc Hello.scala
[email protected] ~/Desktop/Programming/Scala master$ scala Hello
no such file: Hello
[email protected] ~/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)
[email protected] ~/Desktop/Programming/Scala master$ scala foo/bar/Hello
no such file: foo/bar/Hello
[email protected] ~/Desktop/Programming/Scala master$ scala foo/bar/Hello.class
tôi thấy rất nhiều ví dụ trực tuyến giải thích cách đóng gói tệp của bạn. Nhưng tôi không thấy bất cứ điều gì cho thấy làm thế nào để chạy các tập tin từ dòng lệnh.
Mọi trợ giúp sẽ được đánh giá cao.
Cảm ơn bạn đã phản hồi ngay lập tức. Nhiều nghĩa vụ. Tôi sẽ chấp nhận câu trả lời khi bộ đếm thời gian cooldown kết thúc. – I82Much