首页
学习
活动
专区
圈层
工具
发布

Scala
EN

Stack Overflow用户
提问于 2017-03-21 17:11:47
回答 2查看 4.4K关注 0票数 0

我是Scala和SBT的新手。我正在找NullPointerException,请帮帮忙。

.profile

代码语言:javascript
复制
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

哪个scala

代码语言:javascript
复制
/usr/local/bin/scala

scala -version

代码语言:javascript
复制
cat: /release: No such file or directory
Scala code runner version 2.12.1 -- Copyright 2002-2016, LAMP/EPFL and Lightbend, Inc.

哪个sbt

代码语言:javascript
复制
/usr/local/bin/sbt

sbt关于这是sbt 0.13.13

我创建了一个包含以下内容的文件夹FirstScala/src/main/First/First.scala

代码语言:javascript
复制
object First
{
    def main(args:Array[String]) {
        println("First Scala Hello World");
    }
}

build.sbt

代码语言:javascript
复制
name := "first_scala"

version := "1.0"

scalaVersion := "2.12.1"

现在,在FirstScala文件夹中,我运行sbt包。生成.jar文件。但当我跑

代码语言:javascript
复制
scala target/scala-2.12/first_scala_2.12-1.0.jar 

我得到以下错误

代码语言:javascript
复制
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)

提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-21 17:28:41

  1. 更改目录结构,使您拥有src/main/scala/First.scala,因为默认情况下,sbt需要此目录结构。
  2. 您需要指定类路径和要运行的对象(First)的名称。
  3. 使用sbt运行项目: 从/dev/ sbt /.sbt/0.13/ plugins信息中加载全局插件到first_scala (在构建文件中:/dev/FirstScala/)运行第一个Scala Hello成功总时间:0,2017年3月21日2:33:29 PM

参见在http://alvinalexander.com/scala/how-to-run-scala-sbt-packaged-jar-file-with-java-command上使用Java运行JAR的示例

您也可以使用Scala运行JAR,但是仍然需要指定类路径和对象名:http://alvinalexander.com/scala/how-to-run-scala-application-jar-files-set-classpath

票数 2
EN

Stack Overflow用户

发布于 2018-05-30 13:44:12

导出JAVA_HOME="$(/usr/libexec/java_home -v 1.8)“

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42933898

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档