Reputation: 1309
I am new to Scala and SBT. I am getting NullPointerException please help.
.profile
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
export PYSPARK_PYTHON=/Library/Frameworks/Python.framework/Versions/3.5/bin/python3
export SPARK_HOME=/Softwares/spark
export R="/Library/Frameworks/R.framework/Resources"
export PATH=$PATH:$PYSPARK_PYTHON:$SPARK_HOME:$R
which scala
/usr/local/bin/scala
scala -version
cat: /release: No such file or directory
Scala code runner version 2.12.1 -- Copyright 2002-2016, LAMP/EPFL and Lightbend, Inc.
which sbt
/usr/local/bin/sbt
sbt about This is sbt 0.13.13
I have created a folder FirstScala/src/main/First/First.scala containing the following
object First
{
def main(args:Array[String]) {
println("First Scala Hello World");
}
}
build.sbt
name := "first_scala"
version := "1.0"
scalaVersion := "2.12.1"
Now in FirstScala folder I run sbt package. The .jar file gets generated. But when I run
scala target/scala-2.12/first_scala_2.12-1.0.jar
I get the following error
java.lang.NullPointerException
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at scala.reflect.internal.util.ScalaClassLoader.$anonfun$tryClass$1(ScalaClassLoader.scala:44)
at scala.util.control.Exception$Catch.$anonfun$opt$1(Exception.scala:242)
at scala.util.control.Exception$Catch.apply(Exception.scala:224)
at scala.util.control.Exception$Catch.opt(Exception.scala:242)
at scala.reflect.internal.util.ScalaClassLoader.tryClass(ScalaClassLoader.scala:44)
at scala.reflect.internal.util.ScalaClassLoader.tryToInitializeClass(ScalaClassLoader.scala:40)
at scala.reflect.internal.util.ScalaClassLoader.tryToInitializeClass$(ScalaClassLoader.scala:40)
at scala.reflect.internal.util.ScalaClassLoader$URLClassLoader.tryToInitializeClass(ScalaClassLoader.scala:129)
at scala.reflect.internal.util.ScalaClassLoader.run(ScalaClassLoader.scala:91)
at scala.reflect.internal.util.ScalaClassLoader.run$(ScalaClassLoader.scala:90)
at scala.reflect.internal.util.ScalaClassLoader$URLClassLoader.run(ScalaClassLoader.scala:129)
at scala.tools.nsc.CommonRunner.run(ObjectRunner.scala:22)
at scala.tools.nsc.CommonRunner.run$(ObjectRunner.scala:21)
at scala.tools.nsc.JarRunner$.run(MainGenericRunner.scala:13)
at scala.tools.nsc.CommonRunner.runAndCatch(ObjectRunner.scala:29)
at scala.tools.nsc.CommonRunner.runAndCatch$(ObjectRunner.scala:28)
at scala.tools.nsc.JarRunner$.runAndCatch(MainGenericRunner.scala:13)
at scala.tools.nsc.JarRunner$.runJar(MainGenericRunner.scala:25)
at scala.tools.nsc.MainGenericRunner.runTarget$1(MainGenericRunner.scala:65)
at scala.tools.nsc.MainGenericRunner.run$1(MainGenericRunner.scala:88)
at scala.tools.nsc.MainGenericRunner.process(MainGenericRunner.scala:99)
at scala.tools.nsc.MainGenericRunner$.main(MainGenericRunner.scala:104)
at scala.tools.nsc.MainGenericRunner.main(MainGenericRunner.scala)
Thanks in Advance.
Upvotes: 0
Views: 4737
Reputation: 4161
src/main/scala/First.scala
, because by default sbt expects this directory structure.First
).Run your project using sbt:
sbt run [info] Loading global plugins from /dev/sw/.sbt/0.13/plugins [info] Set current project to first_scala (in build file:/dev/FirstScala/) [info] Running First First Scala Hello World [success] Total time: 0 s, completed Mar 21, 2017 2:33:29 PM
See an example of running the JAR using Java at http://alvinalexander.com/scala/how-to-run-scala-sbt-packaged-jar-file-with-java-command
You can also run the JAR using Scala, but you still need to specify the classpath and object name: http://alvinalexander.com/scala/how-to-run-scala-application-jar-files-set-classpath
Upvotes: 2