“线程中的异常”;“主要”;java.lang.NoClassDefFoundError:运行包

“线程中的异常”;“主要”;java.lang.NoClassDefFoundError:运行包,java,Java,我一直在尝试编译一个包含2个类(可以更多)的项目。 这两个类位于我正在处理的同一目录中。 我运行以下命令: C:\Users\Me\Java>javac-d classes-cp classes*.Java 包文件:cweek.java&nweek.java package Hello; public class cweek { public static void main(String[] args) { nweek.printmeth(); } } p

我一直在尝试编译一个包含2个类(可以更多)的项目。 这两个类位于我正在处理的同一目录中。 我运行以下命令:

C:\Users\Me\Java>javac-d classes-cp classes*.Java

包文件:cweek.java&nweek.java

package Hello;

public class cweek
{

   public static void main(String[] args)
   {
      nweek.printmeth();
   }
}
 package Hello;

    public class nweek 
    {
        public static void printmeth() 
        {
            System.out.println("I'm here");
        }

    }
nweek.java

package Hello;

public class cweek
{

   public static void main(String[] args)
   {
      nweek.printmeth();
   }
}
 package Hello;

    public class nweek 
    {
        public static void printmeth() 
        {
            System.out.println("I'm here");
        }

    }
现在,我转到C:\Users\Me\Java\Classes\Hello并尝试使用“javacweek”命令,得到以下错误:

    Exception in thread "main" java.lang.NoClassDefFoundError: cweek (wrong name: Hello/cweek)

    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.access$100(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)

您应该从包含包结构的目录中使用完全限定类名运行该类:

> C:\Users\Me\Java\Classes: java Hello.cweek

顺便说一句,你已经改变了你的命名约定。包名称应以小写字母开头,类名应以大写字母开头。因此,它应该是-
hello.CWeek

cd,指向CWeek.class文件所在的目录。 运行以下命令:

java Hello.cweek