错误: 找不到或无法加载主类 simple.Test

在Windows 10环境下使用Eclipse开发时,误删项目根目录下的bin目录导致运行时报错。通过检查源码、检查JAR、尝试解决方法后,最终采用在Eclipse中执行清理所有项目的操作解决了问题。分析了系统环境配置差异,指出win10与新版Java对环境变量配置的影响,并反思了问题解决过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

偶然的机会,碰到了一个小问题,虽然不难,却很折磨人;而且咨询度娘之后发现网友的解决方法千奇百怪,但是查看/尝试了大约5种不同的说法却没有能够解决问题。看来还是得去求助外网:bing OR google。后来谷歌之后解决了问题,但是却又碰到了新问题,此处做个记录:主要记录解决此问题的方法,顺便描述新问题的坑,留待后面填补。

问题描述

环境描述

脱离本机环境描述问题就是耍流氓。

OS:WIndows 10;
Java Version:1.8.0_60,Java 8;
Eclipse:Mars。

问题简介

之前在eclipse里建立了一个名为simple_test项目,里面只有一个Test.java类,用来测试一些小的idea、验证有疑问的想法。正常编译运行都没问题,如果就此打住估计也没后面的故事了,也就不需要记录了。
下午的时候手贱、同时也是为了给同学演示其他问题,手动删除了根目录下与src同级目录的bin目录:
项目结构
然后就悲剧了,回到eclipse下run as开始报错:
错误: 找不到或无法加载主类 Test.java
不管是eclipse还是直接在该项目的根目录下运行java src\simple\Test.java都是报错。
删除后的项目
~~o(>_<)o ~~

解决方案

检查源码

检查源码,查看是否有拼写错误、类名和文件名不同等诸如此类的人为错误。
检查之后发现确实没有错误,毕竟是之前编译运行都能正常通过的。

检查JAR

此方法还是蛮有道理的方案:项目右击 -build path -configure build path,检查Libraries标签下的jar包有没有报错,报错的根据需要定位到此错误、导入正确jar包,或直接删除。
然而此方法并没有奏效,没有出现错误的jar包。

“解决”方法

这里是真正有效解决问题的方法,但却没能完全打消心中的疑惑。
这里写图片描述
在eclipse下的菜单栏:Project - Clean - Clean all projects -ok,bingo,问题解决。如果打开了很多项目的话,同时clean会浪费很多时间,可以选择Project - Clean - Clean projects selected below,然后单独选中项目,ok即可。

反思

按理说这种问题直接在cmdjavac然后java也可以解决,但是在问题重现解决问题时发现win 10的系统环境配置和新版本的Java的配置不同于以往:
win 10下直接根据提示安装jdk-8u60-windows-x64.exe到默认目录(一方面固态硬盘,另一方面每次折腾太心累,没重复以往的自定义安装软件目录)后,是可以直接打开eclipse编写代码并编译运行的。eclipse和IntelliJ IDEA在使用过程中未遇到过因Java和系统而产生的错误。
查看系统变量-Path,发现win 10+jdk 8_60的组合中,自动生成的路径为:C:\ProgramData\Oracle\Java\javapath,进入目录发现有三个快捷方式,java.exejavaw.exejavaws.exe,定位发现均位于C:\Program Files\Java\jre1.8.0_60\bin下。
一种不同于以往自定义方式的系统变量配置。
新系统下之前从未配置过JAVA_HOME等信息,因而此处引出的javac命令调用不到、java环境配置缺失、win 10下系统环境变量等问题以及不知是win 10还是新版java的问题,新知识的涌现,暴露了自己的知识学习中的一个不大不小的坑,需要后续学习来填补。
再次显示了自己蜡鸡的一面啊,==。欢迎能详细回答此问题的大神指点迷津。

参考文章

感谢此文的原创博主,此文貌似已经看不出原作者是谁。不过非常认同作者静下心来思考问题的心态,自己动手排除问题,32个赞!
参考文章:错误: 找不到或无法加载主类- 蓝讯

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.rj</groupId> <artifactId>simple-file-download</artifactId> <version>0.0.1-SNAPSHOT</version> <name>simple-file-download</name> <description>simple-file-download</description> <properties> <java.version>1.8</java.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <spring-boot.version>2.6.13</spring-boot.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>${spring-boot.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>1.8</source> <target>1.8</target> <encoding>UTF-8</encoding> </configuration> </plugin> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>${spring-boot.version}</version> <configuration> <mainClass>com.rj.simplefiledownload.SimpleFileDownloadApplication</mainClass> <skip>true</skip> </configuration> <executions> <execution> <id>repackage</id> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </project>
06-16
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值