简体   繁体   English

尝试运行时出现Java NoClassDefFound错误

[英]Java NoClassDefFound Error when trying to run

I'm fairly new to working with packages in java but I've got a file structure thats: 我对使用Java中的软件包是相当陌生的,但是我有一个文件结构,那就是:

  • project 项目
    • classes
      • src src
        • com com
          • main 主要
            • Billing.class 计费类
            • Password.class 密码类
    • src src
      • com com
        • main 主要
          • Billing.java Billing.java
          • Password.java 密码.java

Each java file has package package src.com.main; 每个Java文件都有package src.com.main; at the top. 在顶部。 I'm compiling from the project folder using javac -d ./classes/ ./src/com/main/*.java and it compiles fine. 我正在使用javac -d ./classes/ ./src/com/main/*.java从项目文件夹进行javac -d ./classes/ ./src/com/main/*.java ,并且编译良好。 When I go to run it using java classes/src/com/main/Billing is gives me a NoClassDefFound exception. 当我使用java classes/src/com/main/Billing运行它时,给了我NoClassDefFound异常。 What am I doing wrong? 我究竟做错了什么?

Edit: Entire Error: 编辑:整个错误:
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.access$100(URLClassLoader.java:71) at java.net.URLClassLoader$1.run(URLClassLoader.java:361) at java.net.URLClassLoader$1.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)

Try 尝试

cd project/classes/
java -cp . src.com.main.Billing

Your class files are not in the classpath that may be the case. 您的类文件可能不在类路径中。

If you are using maven and eclipse try the command mvn eclipse:eclipse or 如果您使用的是maveneclipse,请尝试使用命令mvn eclipse:eclipse

you can set the classpath using command prompt also where your .class files are located. 您也可以在.class文件所在的位置使用命令提示符设置类路径。

For example: 例如:

C:> set CLASSPATH=classpath1;classpath2.. C:>设置CLASSPATH = classpath1; classpath2 ..

i think you use other class in your class that is on other package or jar file if so! 我认为您是在其他包或jar文件中的类中使用其他类(如果有)! you need to define Class Path to enable java find your dependencies. 您需要定义类路径以使java能够找到您的依赖项。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM