如何解析classnotfoundexception?

krcsximq  于 2021-06-30  发布在  Java
关注(0)|答案(22)|浏览(370)

我试图运行java应用程序,但出现以下错误: java.lang.ClassNotFoundException: 冒号后面是缺少的类的位置。但是,我知道该位置不存在,因为类位于其他位置。如何更新该类的路径?它与类路径有关吗?

6mw9ycah

6mw9ycah16#

你的类路径被破坏了(这是java世界中一个非常常见的问题)。
根据应用程序的启动方式,您需要将参数修改为 -cp ,manifest.mf中的类路径条目或磁盘布局。

j8yoct9x

j8yoct9x17#

要通过命令行将类的位置添加到类路径,只需添加 -cp 或者 -classpath 以及运行它时类的位置。即

java -cp "c:/location/of/file" YourProgram

或者,如果您运行的是eclipse之类的ide,您可以右键单击 project -> build path -> configure build path 并将包含您的类的外部jar添加到构建路径中,那么它应该可以正常工作。

4si2a6ki

4si2a6ki18#

如果您使用的是maven,请尝试maven更新所有项目并强制快照。它也会清理并重建所有类路径。。它解决了我的问题。。

70gysomp

70gysomp19#

如果您使用maven,请检查您的应用程序中是否有此插件 pom.xml :

<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>

它将把依赖关系(异常原因)放到jar中。
仅供参考:这将包括在最终jar中膨胀的所有依赖项

zf9nrax1

zf9nrax120#

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

qlvxas9a

qlvxas9a21#

使用“;”作为分隔符。如果您的环境变量设置正确,您应该看到您的设置。如果您的路径和类路径是正确的,windows应该识别这些命令。安装java时不需要重新启动计算机。

o2gm4chl

o2gm4chl22#

将所有代码放在try块中,然后将catch异常放在catch块中

try
{
    // code
}
catch(ClassNotFoundException e1)
{
    e1.getmessage();
}

相关问题