簡體   English   中英

在命令提示符下運行時ClassNotFoundException

[英]ClassNotFoundException when running in Command Prompt

我是java的新手,並試圖運行一個簡單的計算量的代碼。 代碼如下:

package chapter6;

class Box {

    double width;
    double height;
    double depth;
}

package chapter6;

    public class BoxDemo {

        public static void main(String[] args) {

            Box myBox = new Box();
            double vol;

            myBox.depth = 1;
            myBox.height = 2;
            myBox.width = 3;

            vol = myBox.depth * myBox.height * myBox.width ;        

            System.out.println("Volume: " + vol);
        }

    }

我能夠從eclipse運行代碼,但是當我嘗試在命令提示符下運行代碼時,我得到錯誤:

C:\Prabhjot\Java\CompleteRefence\build\classes>java BoxDemo.class
Exception in thread "main" java.lang.NoClassDefFoundError: BoxDemo/class
Caused by: java.lang.ClassNotFoundException: BoxDemo.class
        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
Could not find the main class: BoxDemo.class.  Program will exit.

請協助。

第一類文件應該在這個位置:

C:\Prabhjot\Java\CompleteRefence\build\classes\chapter6\BoxDemo.class

然后你應該在里面:

C:\Prabhjot\Java\CompleteRefence\build\classes>

然后發出命令:

java chapter6.BoxDemo

在此輸入圖像描述

您已將您的類放在名為chapter6的包中。 這意味着java文件應該位於項目的類根文件夾中名為chapter6的文件夾中。 當你運行它時,你應該在根文件夾中並使用命令java chapter6.BoxDemo

嘗試這個

C:\Prabhjot\Java\CompleteRefence\build\classes>java chapter6.BoxDemo (RUN)

運行時不需要為文件指定.class消光。編譯java文件后,它將創建.class文件。

當您調用BoxDemo.class ,Java會在BoxDemo包中查找一個名為classBoxDemo不存在。 從輸出java.lang.NoClassDefFoundError: BoxDemo/class可以看出,它正在搜索BoxDemo目錄。

相反,只需指定類名: BoxDemo ; 例如java BoxDemo

從控制台運行程序的方式有誤。

你在做

java BoxDemo.class

但你只需要這樣做

java BoxDemo

在運行程序時,您不需要提及帶有名稱的.class

如果您從根文件夾訪問它,那么您需要這樣做

java chapter6.BoxDemo

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM