线程“main”java.lang.NoClassDefFoundError:program中出现异常(错误名称:program/program)
我在mac上编写了一个程序,并通过终端进行编译:线程“main”java.lang.NoClassDefFoundError:program中出现异常(错误名称:program/program),java,compilation,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.defineClas
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
你的计划叫学习,不是计划。您必须在学习文件夹所在的目录中执行此操作。例如:
C:/path/to/files/learning/Learning.class
然后使用cd命令导航到C:/path/to/files/:
然后执行您的语句。将文件名更改为Learning.java 然后编译并运行它Learning.java而不是program.java
文件名应与静态类的文件名相同。NoClassDefFoundError通常意味着编译时可用的类在运行时不可用。例如,编译和运行时类路径不匹配。这里有一篇博文对此做了更详细的解释:你有一个名为Program的类吗?我只是在本教程中将其称为learning,但忘记了源代码,damnitI做了上述操作,它给了我错误信息posted@user1992091第一行是不同的。上面说什么?另外,您是否将.java文件放入名为learning的文件夹中?是的。我的文件夹如下:Desktop/Code/Learning/src/Learning/Learning.java和Learning。class@Doorknob-java学习/学习是错误的。应该是java学习。学习还有问题吗?您必须将类名更改为Program或将Program.java更改为Learning.java
cd C:/path/to/files/