Java 尝试 运行 时出现 NoClassDefFound 错误
Java NoClassDefFound Error when trying to run
我对使用 java 中的包还很陌生,但我有一个文件结构:
- 项目
- 类
- 源码
- com
- 主要
- Billing.class
- Password.class
- 源码
- com
- 主要
- Billing.java
- Password.java
每个 java 文件的顶部都有包 package src.com.main;
。
我正在使用 javac -d ./classes/ ./src/com/main/*.java
从项目文件夹进行编译,并且编译正常。当我使用 java classes/src/com/main/Billing
转到 运行 时,它给了我一个 NoClassDefFound 异常。我做错了什么?
编辑:整个错误:
java classes/src/com/main/BillingException in thread "main" java.lang.NoClassDefFoundError: classes/src/com/main/Billing (wrong name: src/com/main/Billing)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access0(URLClassLoader.java:71)
at java.net.URLClassLoader.run(URLClassLoader.java:361)
at java.net.URLClassLoader.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)
您的 class 文件不在可能是这种情况的 class 路径中。
如果您正在使用 maven 和 eclipse 尝试命令 mvn eclipse:eclipse
或
您可以使用命令提示符设置 class路径,也可以在您的 .class 文件所在的位置设置。
例如:
C:> 设置 CLASSPATH=classpath1;classpath2..
尝试
cd project/classes/
java -cp . src.com.main.Billing
我想你在你的 class 中使用了其他 class ,如果是这样的话!您需要定义 Class 路径以启用 java 找到您的依赖项。
我对使用 java 中的包还很陌生,但我有一个文件结构:
- 项目
- 类
- 源码
- com
- 主要
- Billing.class
- Password.class
- Billing.class
- 主要
- com
- 源码
- 源码
- com
- 主要
- Billing.java
- Password.java
- Billing.java
- 主要
- com
- 类
每个 java 文件的顶部都有包 package src.com.main;
。
我正在使用 javac -d ./classes/ ./src/com/main/*.java
从项目文件夹进行编译,并且编译正常。当我使用 java classes/src/com/main/Billing
转到 运行 时,它给了我一个 NoClassDefFound 异常。我做错了什么?
编辑:整个错误:
java classes/src/com/main/BillingException in thread "main" java.lang.NoClassDefFoundError: classes/src/com/main/Billing (wrong name: src/com/main/Billing)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access0(URLClassLoader.java:71)
at java.net.URLClassLoader.run(URLClassLoader.java:361)
at java.net.URLClassLoader.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)
您的 class 文件不在可能是这种情况的 class 路径中。
如果您正在使用 maven 和 eclipse 尝试命令 mvn eclipse:eclipse 或
您可以使用命令提示符设置 class路径,也可以在您的 .class 文件所在的位置设置。
例如:
C:> 设置 CLASSPATH=classpath1;classpath2..
尝试
cd project/classes/
java -cp . src.com.main.Billing
我想你在你的 class 中使用了其他 class ,如果是这样的话!您需要定义 Class 路径以启用 java 找到您的依赖项。