1

代码:

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

环境变量:

在窗户上:

JAVA_HOME = C:\Program Files\Java\jdk1.7.0_07
CLASSPATH = .;C:\Program Files\Java\jdk1.7.0_07\lib;C:\Software\scala-2.9.2\lib
PATH = %PATH%;C:\Program Files\Java\jdk1.7.0_07\bin;C:\Software\scala-2.9.2\bin
SCALA_HOME = C:\Software\scala-2.9.2

脚步:

scala HelloWorld.scala  //Correctly output Hello,world!
scalac HelloWorld.scala //No Compilation error
java HelloWorld  //Errors shown below

错误:

Exception in thread "main" java.lang.NoClassDefFoundError: scala/ScalaObject
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$100(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at HelloWorld.main(HelloWorld.scala)
Caused by: java.lang.ClassNotFoundException: scala.ScalaObject
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        ... 13 more

很抱歉这个菜鸟问题,但我已经尝试了很长时间,但无法让它发挥作用。

试图scala -savejar文件并运行java -jar;还尝试更改类路径,例如添加scala-library.jar,但仍然无法正常工作。

4

2 回答 2

0

这对我有用(Linux):

java -cp scala-library-2.9.1.jar:. HelloWorld

scala-library-2.9.1.jar可以在这里找到

在 Windows 上,您必须使用分号作为 CLASSPATH 分隔符:

java -cp scala-library-2.9.1.jar;. HelloWorld

基本上,您需要在代码中添加scala-library-*.jarJAR .class文件。在上面的例子中只是.用来表示.class当前目录中的文件。

于 2012-09-28T16:40:28.960 回答
0

如果有数百个,那就太痛苦了:(

不是,您只需将它们放在您的#JRE#/lib/ext 目录中即可

于 2012-10-02T15:26:10.840 回答