Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
存在.class文件时出现Java NoClassDefFoundError_Java_Netbeans_Noclassdeffounderror - Fatal编程技术网

存在.class文件时出现Java NoClassDefFoundError

存在.class文件时出现Java NoClassDefFoundError,java,netbeans,noclassdeffounderror,Java,Netbeans,Noclassdeffounderror,我正在用NetBeans处理一个java项目,当我按下runproject按钮时,它运行得非常好。但是,我需要从终端运行程序。我打开了包含类文件search.class的目录,并尝试用 java search 但是,我得到一个错误: Exception in thread "main" java.lang.NoClassDefFoundError: search (wrong name: search/search) at java.lang.ClassLoader.defineClass1(

我正在用NetBeans处理一个java项目,当我按下runproject按钮时,它运行得非常好。但是,我需要从终端运行程序。我打开了包含类文件search.class的目录,并尝试用

java search
但是,我得到一个错误:

Exception in thread "main" java.lang.NoClassDefFoundError: search (wrong name: search/search)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
由于search.class存在于该目录中,我一辈子也弄不明白为什么它会显示“错误的名称”。我唯一的想法是,我从程序中调用了一些.jar文件(它们在同一个目录中),也许我需要在运行时包含它们

任何帮助都将不胜感激

编辑:所以结果可能是不包括.jar文件的问题。我通过进入dist/文件夹将整个项目打包为一个jar并以java-jar search.jar的形式运行来修复它


感谢所有的反馈

NoClassDefFoundError的经典原因是类的静态初始值设定项引起的异常。

NoClassDefFoundError的经典原因是类的静态初始值设定项引起的异常。

如果类在包中,则必须传递类的全名

package org.example;

public class Search {
     ...
}
你将不得不以同样的方式运行它

java org.example.Search

当前目录必须包含
org
子目录,而子目录又包含
example
目录
Search.class
所在的目录。您可以使用
-cp
参数指定类文件的位置。

如果类在包中,则必须传递类的全名

package org.example;

public class Search {
     ...
}
你将不得不以同样的方式运行它

java org.example.Search

当前目录必须包含
org
子目录,而子目录又包含
example
目录
Search.class
所在的目录。您可以使用
-cp
参数指定类文件的位置。

此类是否在包中?这个班的名字是什么?你能出示班级的签名吗?这就是开始的路线<代码>公共类MyClass{该类在哪个包中?该类在包中吗?该类的名称是什么?可以显示该类的签名吗?这是开始的行…
公共类MyClass{
类在哪个包中?不过,现在我想起来了,当类文件中的类名与类文件(包括包)的名称不匹配时,它也会出现。这是我的怀疑,一个常见的原因是没有正确使用包名。尽管现在我想起来了,当类文件中的类名与类文件(包括包)的名称不匹配。这是我的怀疑,一个常见的原因是没有正确使用包名。