Java 为什么可以';你在这个罐子里找不到类吗?

Java 为什么可以';你在这个罐子里找不到类吗?,java,maven,jar,apache-spark,Java,Maven,Jar,Apache Spark,我是新手。我正在尝试编译和运行一个spark应用程序,它需要来自本地机器上(外部)jar文件的类。如果我打开jar(在~/桌面上),我可以在本地jar中看到丢失的类,但是当我运行spark时,我得到了 NoClassDefFoundError: edu/stanford/nlp/ie/AbstractSequenceClassifier 我将jar添加到spark上下文中,如下所示 String[] jars = {"/home/pathto/Desktop/stanford-corenlp-

我是新手。我正在尝试编译和运行一个spark应用程序,它需要来自本地机器上(外部)jar文件的类。如果我打开jar(在~/桌面上),我可以在本地jar中看到丢失的类,但是当我运行spark时,我得到了

NoClassDefFoundError: edu/stanford/nlp/ie/AbstractSequenceClassifier
我将jar添加到spark上下文中,如下所示

String[] jars = {"/home/pathto/Desktop/stanford-corenlp-3.5.0.jar"};
SparkConf conf = new SparkConf().setAppName("Simple Application").setJars(jars);
/home/pathto/Downloads/spark-1.2.0-bin-hadoop2.4/bin/spark-submit \
  --class "SimpleApp" \
  --master local[4] \
  target/simple-project-1.0.jar \
  --jars local[4] /home/abe/Desktop/stanford-corenlp-3.5.0.jar
然后我尝试运行这样的提交脚本

String[] jars = {"/home/pathto/Desktop/stanford-corenlp-3.5.0.jar"};
SparkConf conf = new SparkConf().setAppName("Simple Application").setJars(jars);
/home/pathto/Downloads/spark-1.2.0-bin-hadoop2.4/bin/spark-submit \
  --class "SimpleApp" \
  --master local[4] \
  target/simple-project-1.0.jar \
  --jars local[4] /home/abe/Desktop/stanford-corenlp-3.5.0.jar
然后点击NoClassDefFoundError

我知道这意味着工作线程无法从jar中找到类。但我不确定我做错了什么。我在最后一行(下面)尝试了不同的语法,但没有一个有效

  --addJars local[4] /home/abe/Desktop/stanford-corenlp-3.5.0.jar
  --addJars local:/home/abe/Desktop/stanford-corenlp-3.5.0.jar
  --addJars local:/home/abe/Desktop/stanford-corenlp-3.5.0.jar

如何修复此错误?

尝试使用
文件:/path/to/jar/jarfile.jar/
指定jar文件位置。使用
local:
意味着jar文件必须已经存在于每个工作节点上的指定位置。有关更多信息,请参阅文档的“高级依赖项管理”部分。

您应该使用主类的完整路径 例如:com.package.MyMainClass

./bin/spark submit--class com.MyMainClass/home/hadoop/Documents/Harish/HelloSpark-0.0.1-SNAPSHOT.jar-config/home/hadoop/Documents/Harish/config.properties


这就是我所使用的…还要检查linux机器上的权限。

您是否也获得了
ClassNotFoundException
@丹尼尔达拉博斯:是的。我得到了一个例外,我将依赖项打包到主应用程序jar中,并使用Maven部署了它。这让它起作用了。但问题仍然悬而未决。我很困惑您在--master local[4]模式下查找jar时遇到了任何问题,我认为这绕过了所有jar问题。当我开发一个程序时,我从来没有遇到过“找不到jars”类型的错误,直到我在独立集群模式下运行。你解决了这个问题吗。