java - 线程 "main"java.lang.NoClassDefFoundError : program (wrong name: program/Program) 中的异常

标签 java compilation

<分区>

我在我的 mac 上写了一个程序并通过终端编译它:

cd user/desktop/Code/Program/src/program
javac Program.java
**java Program**

然后我得到这个错误:

Exception in thread "main" java.lang.NoClassDefFoundError: Program (wrong name: program/Program)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
    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:423)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
    at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:480)

有谁知道我该如何解决这个问题?

源代码:

package learning;

public class Learning{

    public static void main(String[] args){
        String[] wordListOne = {"you are","I know","I eat"};
        String[] wordListTwo = {"a poo","a funny","a posh"};
        String[] wordListThree = {"Sandwich","person","object"};

        int oneLength = wordListOne.length;
        int twoLength = wordListTwo.length;
        int threeLength = wordListThree.length;

        int rand1 = (int) (Math.random() * oneLength);
        int rand2 = (int) (Math.random() * twoLength);
        int rand3 = (int) (Math.random() * threeLength);

        String phrase = wordListOne[rand1]+" "+wordListTwo[rand2]+" "+wordListThree[rand3];

        System.out.println(phrase);
    }
}

最佳答案

尝试使用它。

javac learning/Learning.java
java learning.Learning

你的程序叫做Learning,而不是Program。您必须从 learning 文件夹所在的目录执行此操作。示例:

C:/path/to/files/learning/Learning.class

然后使用 cd 命令导航到 C:/path/to/files/:

cd C:/path/to/files/

然后执行你的语句。

关于java - 线程 "main"java.lang.NoClassDefFoundError : program (wrong name: program/Program) 中的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14410332/

相关文章:

java - 有没有办法避免构造函数传递类?

Java文件输入编译后不起作用

c# - 编译时出现 MonoTouch 错误:System.Boolean System.Type::op_Equality(System.Type,System.Type)

css - 在客户端编译 scss 以保存在网络上

java - 获取带有玻璃的 GWT PopupPanel 淡入淡出

java - 可视化 sqlite 数据库模式

java - 我用Java编写的这个程序需要很长时间才能运行(我还没有看到结果)

java - 滑动时加速列表滚动 - Android。如何?

java - 如何在命令提示符下运行 Java 程序

compilation - 编译期间openmpi错误