我试图运行java应用程序,但出现以下错误: java.lang.ClassNotFoundException: 冒号后面是缺少的类的位置。但是,我知道该位置不存在,因为类位于其他位置。如何更新该类的路径?它与类路径有关吗?
java.lang.ClassNotFoundException:
6mw9ycah16#
你的类路径被破坏了(这是java世界中一个非常常见的问题)。根据应用程序的启动方式,您需要将参数修改为 -cp ,manifest.mf中的类路径条目或磁盘布局。
-cp
j8yoct9x17#
要通过命令行将类的位置添加到类路径,只需添加 -cp 或者 -classpath 以及运行它时类的位置。即
-classpath
java -cp "c:/location/of/file" YourProgram
或者,如果您运行的是eclipse之类的ide,您可以右键单击 project -> build path -> configure build path 并将包含您的类的外部jar添加到构建路径中,那么它应该可以正常工作。
project -> build path -> configure build path
4si2a6ki18#
如果您使用的是maven,请尝试maven更新所有项目并强制快照。它也会清理并重建所有类路径。。它解决了我的问题。。
70gysomp19#
如果您使用maven,请检查您的应用程序中是否有此插件 pom.xml :
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中膨胀的所有依赖项
zf9nrax120#
转到顶部并删除import语句(如果有),然后重新导入类。但如果不是这样的话,那就做一个干净的建筑。您使用的是netbeans还是eclipse?
qlvxas9a21#
使用“;”作为分隔符。如果您的环境变量设置正确,您应该看到您的设置。如果您的路径和类路径是正确的,windows应该识别这些命令。安装java时不需要重新启动计算机。
o2gm4chl22#
将所有代码放在try块中,然后将catch异常放在catch块中
try { // code } catch(ClassNotFoundException e1) { e1.getmessage(); }
22条答案
按热度按时间6mw9ycah16#
你的类路径被破坏了(这是java世界中一个非常常见的问题)。
根据应用程序的启动方式,您需要将参数修改为
-cp
,manifest.mf中的类路径条目或磁盘布局。j8yoct9x17#
要通过命令行将类的位置添加到类路径,只需添加
-cp
或者-classpath
以及运行它时类的位置。即或者,如果您运行的是eclipse之类的ide,您可以右键单击
project -> build path -> configure build path
并将包含您的类的外部jar添加到构建路径中,那么它应该可以正常工作。4si2a6ki18#
如果您使用的是maven,请尝试maven更新所有项目并强制快照。它也会清理并重建所有类路径。。它解决了我的问题。。
70gysomp19#
如果您使用maven,请检查您的应用程序中是否有此插件
pom.xml
:它将把依赖关系(异常原因)放到jar中。
仅供参考:这将包括在最终jar中膨胀的所有依赖项
zf9nrax120#
转到顶部并删除import语句(如果有),然后重新导入类。但如果不是这样的话,那就做一个干净的建筑。您使用的是netbeans还是eclipse?
qlvxas9a21#
使用“;”作为分隔符。如果您的环境变量设置正确,您应该看到您的设置。如果您的路径和类路径是正确的,windows应该识别这些命令。安装java时不需要重新启动计算机。
o2gm4chl22#
将所有代码放在try块中,然后将catch异常放在catch块中