已存在Main方法却报找不到错误(疑与Selenium相关)
排查Selenium + Eclipse Oxygen 代码运行报错的实用思路
我太懂这种“之前跑的好好的代码,换环境就炸锅”的糟心感了!结合你描述的硬盘故障后重装环境、备份代码粘贴的场景,虽然你觉得问题不在代码,但咱们可以从以下几个方向逐一排查,大概率能揪出问题根源:
核对Selenium Jar包的版本与兼容性
你现在重新下载的Selenium版本很可能和硬盘故障前用的不一样,而Eclipse Oxygen是2017年的老版本,对较新的Selenium(比如4.x系列)兼容性可能拉胯。比如Selenium 4.x的部分API依赖JDK 11+,但Eclipse Oxygen默认适配的是JDK 8,这就容易出问题。
排查动作:- 尽量回忆之前用的Selenium版本,下载完全一致的Jar包
- 检查项目的Build Path:右键项目 →
Build Path→Configure Build Path→ 看Libraries标签下的Selenium Jar有没有黄色感叹号(有就说明路径错了或者Jar损坏,重新添加) - 别漏了Selenium的依赖Jar包(比如
selenium-api、selenium-remote-driver这些,之前的项目里肯定是全的,现在别少加)
确认JDK版本的一致性
硬盘坏之前用的JDK版本,和现在Eclipse默认的JDK版本可能不匹配,Selenium对JDK版本是有要求的:Selenium 3.x需要JDK 1.8及以上,Selenium 4.x部分版本要求JDK 11+。
排查动作:- 右键项目 →
Properties→Java Build Path→ 查看JRE System Library的版本 - 如果和之前版本不一样,去
Window→Preferences→Java→Installed JREs里添加对应版本的JDK,再把项目的JRE切换过去
- 右键项目 →
检查代码粘贴后的编码问题
把代码存到记事本时,记事本默认用GBK编码,而Eclipse一般默认UTF-8,这就可能导致注释里的中文或者特殊字符乱码,进而触发编译错误。
排查动作:- 打开报错的Java文件,看看有没有乱码的字符
- 右键文件 →
Properties→Resource→ 把Text file encoding改成和之前一致的编码,或者改成UTF-8后手动修正乱码部分
再仔细核对Main方法的细节
虽然你说按错误提示写了Main方法,但复制粘贴很容易出细微的小问题,比如:- 是不是写成了
Main(首字母大写)?必须是小写的main - 参数是不是
String[] args?有没有拼写成arg或者别的? - 方法所在的类是不是
public修饰的?如果是入口类,必须是public类
可以自己再对照标准格式public static void main(String[] args)核对一遍
- 是不是写成了
清理Eclipse的项目缓存
老版本Eclipse的缓存有时候会抽风,尤其是重装环境后,缓存里的旧信息会干扰新项目。
操作步骤:右键项目 →Clean,等Eclipse重新编译完再试试运行
内容的提问来源于stack exchange,提问作者user3144079
相关产品推荐
相关产品推荐

