Phantom
Phantom

Reputation: 23

How to address Scala error in eclipse 2019?

I am trying to do a basic scala HelloWorld in Eclipse 2019 and I am getting an error.

The following is my code and the error it is producing. Can someone please help me address this error in eclipse? Thanks

package hello

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

Error:

Exception in thread "main" java.lang.NoClassDefFoundError: scala/Predef$ at HelloWorld/hello.HelloWorld$.main(HelloWorld.scala:5) at HelloWorld/hello.HelloWorld.main(HelloWorld.scala) Caused by: java.lang.ClassNotFoundException: scala.Predef$ at

java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) ... 2 more

Scala library is already in source path

Upvotes: 2

Views: 1140

Answers (2)

thomascompbio
thomascompbio

Reputation: 150

There are two required places to set your class-path:

  1. Build/compilation time class-path: (i) Right-click on your project, (ii) Buildpath > Configure BuildPath, (iii) Add Library (or jar), (iv) Select the Scala Library. This one you already have as supported by your screenshot.

  2. Run-time compilation class-path: This needs to be explicitly set in the Run-time configuration to also include the scala library: (i) Run configurations..., (ii) Classpath, (iii) Add Jar and use the scala-library jar. For this option, I have not tested whether User vs Bootstrap matters. Furthermore, I was unable to use the Add Library here, only Add jar results in a functioning run within Eclipse.

The second option is the likely cause of the error you are getting.

Upvotes: 2

Gal Naor
Gal Naor

Reputation: 2397

You need to add Scala library to your classpath.

From Eclipse:

  1. Right-click on your project
  2. Configure Buildpath
  3. Add Library
  4. Select the Scala Library

Upvotes: 1

Related Questions