Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.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
Java 如何解决ClassNotFoundException?_Java_Class_Classpath_Classnotfoundexception - Fatal编程技术网

Java 如何解决ClassNotFoundException?

Java 如何解决ClassNotFoundException?,java,class,classpath,classnotfoundexception,Java,Class,Classpath,Classnotfoundexception,我正在尝试运行Java应用程序,但出现以下错误: java.lang.ClassNotFoundException: 冒号之后是缺少的类的位置。但是,我知道该位置不存在,因为该类位于其他位置。如何更新该类的路径?它与类路径有关吗?如果您知道类的路径或包含类的jar,则在运行它时将其添加到类路径中。您可以使用此处提到的类路径: 在窗户上 java -classpath .;yourjar.jar YourMainClass 在UNIX/Linux上 java -classpath .:yourj

我正在尝试运行Java应用程序,但出现以下错误:

java.lang.ClassNotFoundException:


冒号之后是缺少的类的位置。但是,我知道该位置不存在,因为该类位于其他位置。如何更新该类的路径?它与类路径有关吗?

如果您知道类的路径或包含类的jar,则在运行它时将其添加到类路径中。您可以使用此处提到的类路径:

在窗户上

java -classpath .;yourjar.jar YourMainClass
在UNIX/Linux上

java -classpath .:yourjar.jar YourMainClass

如果您知道类的路径或包含该类的jar,那么在运行它时将其添加到您的类路径中。您可以使用此处提到的类路径:

在窗户上

java -classpath .;yourjar.jar YourMainClass
在UNIX/Linux上

java -classpath .:yourjar.jar YourMainClass
您的类路径被破坏(这是Java世界中非常常见的问题)

根据启动应用程序的方式,您需要将参数修改为
-cp
、MANIFEST.MF中的类路径条目或磁盘布局。

您的类路径被破坏(这是Java世界中非常常见的问题)


根据启动应用程序的方式,需要将参数修改为
-cp
、MANIFEST.MF中的类路径条目或磁盘布局。

转到顶部,删除导入语句(如果有),然后重新导入类。但如果不是这样的话,那么就做一个干净的构建。您使用的是Netbeans还是Eclipse?

转到顶部,删除导入语句(如果有),然后重新导入该类。但如果不是这样的话,那么就做一个干净的构建。您使用的是Netbeans还是Eclipse?

要通过命令行将类的位置添加到类路径中,只需在运行类时添加
-cp
-classpath
和类的位置即可。即

java -cp "c:/location/of/file" YourProgram
或者,如果您正在运行eclipse之类的IDE,您可以右键单击
项目->构建路径->配置构建路径

然后将包含类的外部JAR添加到构建路径中,这样就可以正常工作。

要通过命令行将类的位置添加到类路径中,只需在运行时添加
-cp
-classpath
和类的位置。即

java -cp "c:/location/of/file" YourProgram
或者,如果您正在运行eclipse之类的IDE,您可以右键单击
项目->构建路径->配置构建路径

并将包含类的外部JAR添加到构建路径中,那么它应该可以正常工作。

类路径是从中加载类的位置列表

这些“位置”可以是目录,也可以是jar文件

对于目录,JVM将遵循加载类的预期模式。如果我的类路径中有目录C:/myproject/classes,并且我尝试加载一个类com.mycompany.Foo,它将在classes目录下查找名为com的目录,然后在该目录下查找名为mycompany的目录,最后,它将在该目录中查找名为Foo.class的文件

在第二个实例中,对于jar文件,它将在jar文件中搜索该类。jar文件实际上只是一个压缩的目录集合,如上所述。如果您解压缩一个jar文件,您将得到一堆遵循上述模式的目录和类文件

因此,当JVM尝试加载类定义时,它会从头到尾遍历类路径以查找类的定义。例如,在类路径中:

C:/myproject/classes;C:/myproject/lib/stuff.jar;C:/myproject/lib/otherstuff.jar

JVM将首先尝试查找目录classes,然后查找stuff.jar,最后查找otherstuff.jar

当您得到ClassNotFoundException时,这意味着JVM已经遍历了整个类路径,没有找到您试图引用的类。正如Java世界中经常出现的那样,解决方案是检查类路径


您可以在命令行上定义一个类路径,方法是说java-cp,然后是您的类路径。在Eclipse之类的IDE中,您将有一个菜单选项来指定类路径。

类路径是从中加载类的位置列表

这些“位置”可以是目录,也可以是jar文件

对于目录,JVM将遵循加载类的预期模式。如果我的类路径中有目录C:/myproject/classes,并且我尝试加载一个类com.mycompany.Foo,它将在classes目录下查找名为com的目录,然后在该目录下查找名为mycompany的目录,最后,它将在该目录中查找名为Foo.class的文件

在第二个实例中,对于jar文件,它将在jar文件中搜索该类。jar文件实际上只是一个压缩的目录集合,如上所述。如果您解压缩一个jar文件,您将得到一堆遵循上述模式的目录和类文件

因此,当JVM尝试加载类定义时,它会从头到尾遍历类路径以查找类的定义。例如,在类路径中:

C:/myproject/classes;C:/myproject/lib/stuff.jar;C:/myproject/lib/otherstuff.jar

JVM将首先尝试查找目录classes,然后查找stuff.jar,最后查找otherstuff.jar

当您得到ClassNotFoundException时,这意味着JVM已经遍历了整个类路径,没有找到您试图引用的类。正如Java世界中经常出现的那样,解决方案是检查类路径


您可以在命令行上定义一个类路径,方法是说java-cp,然后是您的类路径。在Eclipse这样的IDE中,您将有一个菜单选项来指定类路径。

我也遇到了这个问题,并尝试了al
    <build>
        <plugins>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>3.2.0</version>
                <executions>
                    <!-- Attach the shade goal into the package phase -->
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

        </plugins>
    </build>