记录下来遇到的(问题,解决方法),是更有效的解决问题的方式。(原谅我领悟的太晚与懒,从此用更有意义的方法,做一个更有意义的人)

因为遇到了多次,参考同一个方法,原文连接:https://blog.csdn.net/u010512607/article/details/46350813

近两天在用Eclipse写代码的时候突发奇想,把所有生成的 .class 文件统统删掉,以为只要重新运行就可以重新生成新的 class 文件,哪知道出问题了,控制台提示->错误:找不到或无法加载主类……。自己忙活了好久,也没有有效的解决方法。后来在网上找了找,终于发现了真正的原因。

原来,Eclipse 中的 Java 编译器是基于 .java 文件的新旧来判断是否进行编译。也就是说,一个 .java 文件如果不更新,那么 Eclipse 中的编译器就不会对其进行再次编译。

前面提到的删掉了所有的 .class 文件后点击运行报错主要也是这个原因。删除 .class 文件后,在 .java 文件没有变化的时候是不会被重新编译的,那么 JVM 在运行 .class 文件时就找不到 .class 文件,于是就报错。那么,该怎么解决呢?

我们知道,Eclipse 默认情况下第一次点击运行图标或者右键->Run As 一个源文件时,会提示如下:

也就是让我们选择是否在运行前自动保存源文件,这样在对源文件进行修改过后就可以立即反映到运行结果中。如果勾上Always save resources before launching,那么每次运行都会判断文件是否已经更新并进行保存,如果要对其进行设置,可以在 Window->Preferences->Run/Debug->Launching 中进行设置:

而在 Eclipse 中还有一点得注意,如果勾选了在运行前保存源文件,那么,源文件也会被编译,因为在默认的 Windows->Preferences->General->Workspace 中,有这样一条:

只要源文件一有变化(保存后)就会自动进行编译操作,缺点是必须得做点什么然后保存,所以如果源文件中没有使用到其它 .java 文件中自定义的类的时候,可以对其进行象征性的修改以使其变成新的,然后运行就行了。否则还得把用到的类也进行同样的操作然后保存运行。

注意,还有但是,这样做太麻烦了,而且对于一包含大量源文件的工程来说,这么做也不太现实。所以得找一个一劳永逸的解决之道。答案就是:

Project->Clean...

Clean...操作会将该工程以前的所有编译信息清空,然后默认将所在工程的所有 .java 文件都进行一次编译,这样的话就可以方便地进行修改与运行了。

写了这么多,总结一下关于删掉 .class 文件运行报错的几种解决办法:

1、对于单个文件,并且没有使用到在别的 .java 文件中自定义的类,可以对其进行象征性的修改,加空格或者类似的操作,然后保存。如果使用了其它类,那么就得在对应的类中也作修改并保存,或者修改完后一齐保存。

2、简单粗暴又有效的办法,Project->Clean...,将所在工程以往的编译信息都清空并全都重新编译一次。

解决Eclipse中“诡异”的错误:找不到或无法加载主类的更多相关文章

  1. 记一次解决cmd中执行java提示"找不到或无法加载主类"的问题

    今天遇到一个问题:在cmd命令行中,用javac编译java文件可以成功,但是用java执行却提示“找不到或无法加载主类”.现将该问题的原因以及解决办法记录一下. 先理解一下系统变量path和clas ...

  2. Eclipse 无法编译,提示“错误: 找不到或无法加载主类”

    jar包问题: 1.项目的Java Build Path中的Libraries中有个jar包的Source attachment指为了一个不可用的jar包, 解决办法是:将这个不可用的jar包remo ...

  3. eclipse springboot运行helloworld错误: 找不到或无法加载主类 xxx.xxx.xxx

    这个错误,在网上搜找了好久,说是什么jar包冲突,什么环境配置,我经过验证均是正确的,javac java java -version 都没问题,环境变量也OK,各种解释均没有能够解决我的问题,最后好 ...

  4. 关于解决cmd中执行java提示"找不到或无法加载主类"的问题

    昨天学生遇到一个问题:在cmd命令行中,用javac编译java文件可以成功,但是用java执行却提示“找不到或无法加载主类”.现将该问题的原因以及解决办法记录一下. 先理解一下系统变量path和cl ...

  5. eclipse 执行main方法 错误: 找不到或无法加载主类

    检查环境变量是否正确 JAVA_HOME JAVA的实际安装目录 CLASSPATH .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\ ...

  6. Eclipse无法编译,提示错误“找不到或者无法加载主类”解决方法

    jar包问题: 1.项目的Java Build Path中的Libraries中有个jar包的Source attachment指为了一个不可用的jar包, 解决办法是:将这个不可用的jar包remo ...

  7. 今天遇到一件开心事,在eclipse编写的代码在命令窗口中编译后无法运行,提示 “错误: 找不到或无法加载主类”

    java中带package和不带package的编译运行方式是不同的. 首先来了解一下package的概念:简单定义为,package是一个为了方便管理组织java文件的目录结构,并防止不同java文 ...

  8. maven project中,在main方法上右键Run as Java Application时,提示错误:找不到或无法加载主类XXX.XXXX.XXX

    新建了一个maven project项目,经过一大堆的修改操作之后,突然发现在main方法上右键运行时,竟然提示:错误:找不到或无法加载主类xxx.xxx.xxx可能原因1.eclipse出问题了,在 ...

  9. mac 下 使用 java运行 class 文件 总是提示 “错误: 找不到或无法加载主类”的解决方法

    发现问题 切换到mac平台后,突然想写点程序运行在mac下,想到mac自带java,会方便好多.不过在这过程中遇到了麻烦: 总是提示 “错误: 找不到或无法加载主类” 工程结构 查了好久,终于找到原型 ...

  10. 错误: 找不到或无法加载主类(IDEA中启动spring boot项目)

    版权声明:本文为博主原创文章,如果转载请给出原文链接:http://www.jufanshare.com/content/142.html 提示:需要对IDEA编辑工具使用熟悉 出现一个问题,就是sp ...

随机推荐

  1. Python flask+react+antd实现登陆demo

    这两天在研究flask和antd,想把这俩个东西结合来使用,单独学antd的时候用的是dva来配置,但是发现这样与flask结合的话需要启动两个服务,作为flask只是作为数据的接口,并没用用到其强大 ...

  2. Yolov3参数解释以及答疑

    目录 参数解析 训练答疑 ​ 参数解析 [net] #Testing #batch=1 //test:一次一个图片 #subdivisions=1 #Training batch=32 //一次迭代送 ...

  3. List自定义排序(可多条件)

    1:先建需要排序的属性Model package com.msqsoft.app.queuing.util; public class ListOrderByModel { private Strin ...

  4. 【开源GPS追踪】 之 服务器端opengts安装

    国内大多数GPS追踪/定位 平台都是基于opengts 二次开发的,opengts 是一款开源的gps 跟踪软件. 下面摘自百度百科: OpenGTS ™(“GPS跟踪系统”)是第一个可用的开源项目, ...

  5. php回话控制 cookie

    <?php class CustomCookie{ static private $_instance = null; private function __construct(array $o ...

  6. MySql中的约束

    mysql中的约束使用和oracle使用差别不大. 1.主键约束 如同人对应身份证,主键能够唯一地标识表中的一条记录,可以结合外键来定义数据表之间的关系. 主键约束要求主键列的数据唯一,并且不允许为空 ...

  7. System.out.println()和System.err.println()

    在一次笔试中遇到了一个System.err.println()的输出,之前没有见过,回来查一查,自己还是见识太短,来补充一下. 首先看一看jdk中 来一个简单的实验 第一次显示 第二次显示 1. 发现 ...

  8. C++学习笔记51:排序

    //直接插入排序函数模板 template <class T> void insertionSort(T a[], int n) { int i, ; T temp; ; i < n ...

  9. 什么是OKR?

    什么是OKR OKR全称是Objectives and Key Results,即目标与关键成果法.OKR是一套定义和跟踪目标及其完成情况的管理工具和方法.1999年 Intel公司发明了这种方法,后 ...

  10. 用Java代码列出一个目录下所有的文件

    1.File类 File类在java.io.File包中,所以要导入这个包. File类中用到的方法: boolean isDirectory()       测试此抽象路径名表示的文件是否是个目录 ...