有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

线程“main”java中的包异常中的hadoop类。lang.NoClassDefFoundError

我正在尝试在Hadooop(UbuntuLinux)中运行一个jar文件

我的文件“Project1”。java’在类之前定义了一个包,如下所示:

package myPackage.comp;
public class Project1 {
---lines of code here---
}

我使用以下命令尝试运行它:

$ hadoop com.sun.tools.javac.Main Project1.java
$ jar cf proj1.jar Project1*.class
$ hadoop jar proj1.jar Project1 input output

我得到了以下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: comp/proj1/Project1 (wrong name: Project1)
    at java.base/java.lang.ClassLoader.defineClass1(Native Method)
    at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017)
    at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
    at java.base/java.net.URLClassLoader.defineClass(URLClassLoader.java:550)
    at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:458)
    at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:452)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:451)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
    at java.base/java.lang.Class.forName0(Native Method)
    at java.base/java.lang.Class.forName(Class.java:398)
    at org.apache.hadoop.util.RunJar.run(RunJar.java:316)
    at org.apache.hadoop.util.RunJar.main(RunJar.java:236)

当我查看生成的proj1时。jar文件,我可以看到一个项目1。其中包含java类文件

我错过了什么

更新:如果我删除该行

package myPackage.comp;

它工作得很好

当我把课程包含在一个包中时,我如何让它工作


共 (1) 个答案

  1. # 1 楼答案

    每个项目都必须有一个名为main的类。所以如果你写main而不是Project1,问题就解决了