我试图运行java应用程序,但出现以下错误: java.lang.ClassNotFoundException: 冒号后面是缺少的类的位置。但是,我知道该位置不存在,因为类位于其他位置。如何更新该类的路径?它与类路径有关吗?
java.lang.ClassNotFoundException:
vvppvyoh1#
如果您已将项目移动到新计算机或从git导入它,请尝试以下操作。右键单击class>runas>runconfiguration删除主类引用应用>关闭现在再次右键单击class>runasjava应用程序。它对我有用。
weylhg0b2#
如果您知道类的路径或包含该类的jar,那么在运行它时将其添加到类路径中。您可以使用这里提到的类路径:在windows上
java -classpath .;yourjar.jar YourMainClass
在unix/linux上
java -classpath .:yourjar.jar YourMainClass
ao218c7q3#
使用“;”作为分隔符。如果您的环境变量设置正确,您应该看到您的设置。如果您的路径和类路径是正确的,windows应该识别这些命令。安装java时不需要重新启动计算机。
kmbjn2e34#
如果你用maven,试试这些。我在我的项目中使用maven mvn clean install 试着运行一个抛出异常的程序。所以,我清理项目,再次运行它,它为我工作。我使用eclipseide。对于运行junit测试时未发现类异常,请尝试运行 mvn clean test 一次。它将编译所有的测试类。
mvn clean install
mvn clean test
46scxncf5#
我刚刚做了1.使缓存失效并重新启动2.重建了解决问题的项目
svdrlsy46#
如果类路径不正确,可能会发生这种情况让我们假设一个序列化类和反序列化类在同一个projectname下。运行serializable类,在特定文件夹中创建一个serializable对象。现在你需要去序列化的数据。同时,如果你改变了项目的名称,它将不起作用。必须先运行可序列化类,然后反序列化文件。
pengsaosao7#
你的类路径被破坏了(这是java世界中一个非常常见的问题)。根据应用程序的启动方式,您需要将参数修改为 -cp ,manifest.mf中的类路径条目或磁盘布局。
-cp
qltillow8#
我也遇到了这个问题,并尝试了所有其他的解决方案。我的html文件夹中没有.class文件,只有.java文件。一旦我添加了.class文件,程序就运行得很好。
siotufzp9#
将所有代码放在try块中,然后将catch异常放在catch块中
try { // code } catch(ClassNotFoundException e1) { e1.getmessage(); }
vulvrdjw10#
这是迄今为止我找到的最好的解决办法。假设我们有一个叫 org.mypackage 包含类:helloworld(主类)支持类实用类定义这个包的文件物理上存储在这个目录下 D:\myprogram (在窗口上)或 /home/user/myprogram (在linux上)。文件结构如下所示:调用java时,我们指定要运行的应用程序的名称: org.mypackage.HelloWorld . 但是,我们还必须告诉java在哪里查找定义包的文件和目录。所以要启动程序,我们必须使用以下命令:注意:您必须执行上述操作 java 不管你现在的位置是什么。但事实并非如此 javac . 对于编译,您甚至可以直接进入您的 .java 文件并直接执行 javac ClassName.java .
org.mypackage
D:\myprogram
/home/user/myprogram
org.mypackage.HelloWorld
java
javac
.java
javac ClassName.java
xxhby3vn11#
这可能发生在windows上,在java更新之后,旧版本的javasdk丢失,新版本出现。我将检查您的ide是否使用已安装的javasdk版本(intellij:ctrl+shift+alt+s)
rm5edbpk12#
如果您添加了多个(第三方)库并扩展了应用程序类那就有可能发生。为此,你必须 multiDexEnabled true 换上你的延长线 Application 与…同班 MultiDexApplication .会解决的。
multiDexEnabled true
Application
MultiDexApplication
qq24tv8q13#
转到顶部并删除import语句(如果有),然后重新导入类。但如果不是这样的话,那就做一个干净的建筑。您使用的是netbeans还是eclipse?
tkqqtvp114#
要通过命令行将类的位置添加到类路径,只需添加 -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
vof42yt115#
我试着用 Process 班级。java代码在eclipse中运行成功,但在c#visualstudio中运行不成功,甚至直接单击jar文件,它总是以 ClassNotFoundException: 例外。我的解决方案是将java程序导出为“runnable jar file”,而不是“jar file”。希望它能帮助别人。
Process
ClassNotFoundException:
22条答案
按热度按时间vvppvyoh1#
如果您已将项目移动到新计算机或从git导入它,请尝试以下操作。
右键单击class>runas>runconfiguration
删除主类引用
应用>关闭
现在再次右键单击class>runasjava应用程序。
它对我有用。
weylhg0b2#
如果您知道类的路径或包含该类的jar,那么在运行它时将其添加到类路径中。您可以使用这里提到的类路径:
在windows上
在unix/linux上
ao218c7q3#
使用“;”作为分隔符。如果您的环境变量设置正确,您应该看到您的设置。如果您的路径和类路径是正确的,windows应该识别这些命令。安装java时不需要重新启动计算机。
kmbjn2e34#
如果你用maven,试试这些。我在我的项目中使用maven
mvn clean install
试着运行一个抛出异常的程序。所以,我清理项目,再次运行它,它为我工作。我使用eclipseide。
对于运行junit测试时未发现类异常,请尝试运行
mvn clean test
一次。它将编译所有的测试类。46scxncf5#
我刚刚做了
1.使缓存失效并重新启动
2.重建了解决问题的项目
svdrlsy46#
如果类路径不正确,可能会发生这种情况
让我们假设一个序列化类和反序列化类在同一个projectname下。运行serializable类,在特定文件夹中创建一个serializable对象。现在你需要去序列化的数据。同时,如果你改变了项目的名称,它将不起作用。必须先运行可序列化类,然后反序列化文件。
pengsaosao7#
你的类路径被破坏了(这是java世界中一个非常常见的问题)。
根据应用程序的启动方式,您需要将参数修改为
-cp
,manifest.mf中的类路径条目或磁盘布局。qltillow8#
我也遇到了这个问题,并尝试了所有其他的解决方案。我的html文件夹中没有.class文件,只有.java文件。一旦我添加了.class文件,程序就运行得很好。
siotufzp9#
将所有代码放在try块中,然后将catch异常放在catch块中
vulvrdjw10#
这是迄今为止我找到的最好的解决办法。
假设我们有一个叫
org.mypackage
包含类:helloworld(主类)
支持类
实用类
定义这个包的文件物理上存储在这个目录下
D:\myprogram
(在窗口上)或/home/user/myprogram
(在linux上)。文件结构如下所示:
调用java时,我们指定要运行的应用程序的名称:
org.mypackage.HelloWorld
. 但是,我们还必须告诉java在哪里查找定义包的文件和目录。所以要启动程序,我们必须使用以下命令:注意:您必须执行上述操作
java
不管你现在的位置是什么。但事实并非如此javac
. 对于编译,您甚至可以直接进入您的.java
文件并直接执行javac ClassName.java
.xxhby3vn11#
这可能发生在windows上,在java更新之后,旧版本的javasdk丢失,新版本出现。我将检查您的ide是否使用已安装的javasdk版本(intellij:ctrl+shift+alt+s)
rm5edbpk12#
如果您添加了多个(第三方)库并扩展了应用程序类
那就有可能发生。
为此,你必须
multiDexEnabled true
换上你的延长线Application
与…同班MultiDexApplication
.会解决的。
qq24tv8q13#
转到顶部并删除import语句(如果有),然后重新导入类。但如果不是这样的话,那就做一个干净的建筑。您使用的是netbeans还是eclipse?
tkqqtvp114#
要通过命令行将类的位置添加到类路径,只需添加
-cp
或者-classpath
以及运行它时类的位置。即或者,如果您运行的是eclipse之类的ide,您可以右键单击
project -> build path -> configure build path
并将包含您的类的外部jar添加到构建路径中,那么它应该可以正常工作。vof42yt115#
我试着用
Process
班级。java代码在eclipse中运行成功,但在c#visualstudio中运行不成功,甚至直接单击jar文件,它总是以ClassNotFoundException:
例外。我的解决方案是将java程序导出为“runnable jar file”,而不是“jar file”。希望它能帮助别人。