cmd错误:找不到或无法加载主类 和 错误:找不到符号

背景

在eclipse的文件目录:

这是我写的一个编程基于udp的Ping课设,PingClient.java文件是客户端,PingServer.java是服务器端,ThreadServer.java是服务器的线程,在PingServer.java中调用了ThreadServer.java!在eclipse中运行一切正常,没有任何错误!

在文件资源管理器中的目录:

问题及解决方法

1、错误:找不到符号

原因:PingServer.java中调用了ThreadServer.java,javac编译器编译PingServer.java时不会去编译ThreadServer.java,这个跟ThreadServer.class文件存不存在没有关系,即跟ThreadServer.java有没有被编译过没有关系,关键是编译器需要在编译PingServer.java时,在调用ThreadServer.java语句处要重新编译ThreadServer.java

解决方法:同时编译PingServer.java和ThreadServer.java

2、找不到或无法加载主类

先说明一下,这个跟JDK的环境配置没有太大的关系,如果eclipse中能正常运行的话,证明JDK没毛病。看到网上有很多方法说需要在CLASSPATH环境变量中添加点(.),还有的说用户变量会覆盖系统变量之类的,我照着网上的方法试着修改了,也重启电脑了,都没有用。实际上,如果使用的是1.5以上版本的JDK,完全可以不用设置CLASSPATH环境变量。

1.5以上版本的JDK不设置CLASSPATH环境变量:JRE会自动在当前路径寻找Java类

1.5以上版本的JDK设置了CLASSPATH环境变量:JRE将会按照该环境变量指定的路径来搜索Java类,这时候就需要在CLASSPATH变量中添加点(.),JRE才会在当前路径下寻找Java类

原因:路径不对引发的错误

解决方法:删掉CLASSPATH环境变量(前提是1.5以上版本的JDK,重启生效!!!)

(1)第一种方法:去掉 package

把每一个类中的package语句都注释掉,这个会引发eclipse报错,但是在cmd里面是可以正常运作的。

注意:此时cmd路径指向class文件所在的文件夹,即例子中的E:\eclipse-workspace\udp_Ping\src\service,在此路径下用java命令行运行class文件时,由于package语句的存在,所以编译器实际在这个路径E:\eclipse-workspace\udp_Ping\src\service里再找一个service文件夹,即在E:\eclipse-workspace\udp_Ping\src\service\service里寻找class文件,就导致了找不到主类错误了。

改完之后,在cmd里面要重新编译各个类!

运行结果:正确

 

(2)第二种方法:(推荐!!!)不删 package语句

注意:每一次在eclipse中修改了代码,在cmd中都要重新编译java文件

cmd中路径指向E:\eclipse-workspace\udp_Ping\src

运行结果:正确

 

 

以上,就是我在这次课设中碰到的两个错误,本人也是小白一个,上述有什么错误地方,欢迎大佬指出!

### 解决方案 当遇到在 Eclipse IntelliJ IDEA 中导入他人的 Java 项目时,`@Slf4j` 注解无法到 `log` 变量的问题,通常是因为缺少 Lombok 插件的支持。以下是具体的解决措施: #### 安装 Lombok 插件 对于 **Eclipse** 用户来说,可以通过下载并安装 Lombok 来解决问题[^4]。 1. 访问官方网站 https://projectlombok.org/download 下载最新的 Lombok.jar 文件。 2. 将该 jar 文件放置于 Eclipse 的安装目录内。 3. 打开命令行工具(CMD),切换至上述路径执行命令:`java -jar lombok.jar` 进行安装。 4. 按照提示完成安装过程后重启 IDE 即可生效。 而对于 **IntelliJ IDEA** 用户,则需通过内置插件市场来获取支持[^2]: 1. 转到菜单栏中的 "File" -> "Settings..." (Windows/Linux) 者 "Preferences..." (macOS). 2. 寻 "Plugins", 并搜索 “Lombok Plugin”,点击右侧的 Install 按钮进行安装. 3. 如果安装完成后仍然存在编译错误,继续前往设置页面内的 "Build, Execution, Deployment" -> "Compiler" -> "Annotation Processors". 4. 勾选 Enable annotation processing 复选框,并确认更改. 以上操作能够有效激活 Lombok 功能,在代码中自动注入所需的日志记录器实例,从而消除关于未定义的日志对象的相关警告错误信息。 ```java import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class Example { private static final Logger log = LoggerFactory.getLogger(Example.class); public void someMethod() { log.info("This message will now be recognized by the compiler."); } } ```
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值