“线程中的异常”;“主要”;java.lang.NoClassDefFoundError:运行包
我一直在尝试编译一个包含2个类(可以更多)的项目。 这两个类位于我正在处理的同一目录中。 我运行以下命令: C:\Users\Me\Java>javac-d classes-cp classes*.Java 包文件:cweek.java&nweek.java“线程中的异常”;“主要”;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
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