解决Eclipse中“诡异”的错误:找不到或无法加载主类……

本文探讨了在Eclipse中删除.class文件后遇到的运行错误,并提供了两种实用的解决方案。一种是通过修改.java文件并保存,另一种是使用Project->Clean...清理并重新编译整个项目。

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

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

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

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

 图1

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

 图2

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

 图3

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

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

Project->Clean...

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

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

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

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

不到无法加载错误通常由名和文件名不匹配、路径设置错误、包声明不正确、访问修饰符问题、缺少`main()`方法、编译错误 Java 版本兼容性问题引起。解决错误可从以下方面入手: 1. **检查名和文件名**:确保 Java 源文件的名称与其中公共的名称完全一致,包括大小写。例如,若公共名为`MyClass`,则源文件名应为`MyClass.java` [^1]。 2. **检查路径设置**:路径指定了 Java 虚拟机(JVM)查文件的位置。在 Eclipse 中,可通过项目属性设置路径。具体操作是右键单击项目,选择“Properties” -> “Java Build Path”,确保所需的 JAR 文件和源文件夹已正确添加 [^1]。 3. **检查包声明**:确保 Java 文件中的包声明与文件所在的目录结构一致。例如,若包声明为`package com.example`,则该文件应位于`src/com/example`目录下 [^1]。 4. **检查访问修饰符**:必须是公共的(`public`),并且包含`main()`方法。`main()`方法的签名必须为`public static void main(String[] args)` [^1]。 5. **检查是否缺少`main()`方法**:中必须包含`main()`方法,JVM 会从该方法开始执行程序 [^1]。 6. **检查编译错误**:确保项目没有编译错误。可查看 Eclipse 的“Problems”视图,修复所有编译错误 [^1]。 7. **检查 Java 版本兼容性**:确保项目使用的 Java 版本与 JDK 版本兼容。可在项目属性的“Java Compiler”中设置 Java 版本 [^1]。 8. **检查 Eclipse 保存和编译设置**:在 Eclipse 中,若勾选了在运行前保存源文件,源文件会被编译。可检查`Windows -> Preferences -> General -> Workspace`中的相关设置 [^2]。 ```java // 示例 public class Main { public static void main(String[] args) { System.out.println("Hello, World!"); } } ```
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值