You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PostgreSQL JDBC驱动运行编译类时出现‘找不到或无法加载主类’错误

解决Java运行时找不到主类Main的问题

问题场景

项目目录包含Main.java、编译生成的Main.class和postgresql-42.7.5.jar,使用javac -cp .:postgresql-42.7.5.jar Main.java编译成功,但执行java -cp .:postgresql-42.7.5.jar Main时出现错误:

Error: Could not find or load main class Main
Caused by: java.lang.ClassNotFoundException: Main

核心原因及解决办法

1. 操作系统类路径分隔符不匹配

这是最常见的触发原因:

  • Linux/macOS:类路径用冒号:分隔,可尝试调整类路径顺序再执行:
    java -cp postgresql-42.7.5.jar:. Main
    
  • Windows:类路径必须用分号;分隔,冒号:会被系统识别为路径的一部分,导致无法找到当前目录下的Main.class,正确命令应为:
    java -cp .;postgresql-42.7.5.jar Main
    

2. 确认Main.class的位置和权限

  • 用命令验证当前目录下存在Main.class:
    • Linux/macOS:ls -l Main.class
    • Windows:dir Main.class
  • 如果文件存在但仍报错,Linux/macOS下可执行chmod +r Main.class赋予读取权限

3. 检查Java版本兼容性

确保编译和运行使用的Java版本一致:

  • 查看编译版本:javac -version
  • 查看运行版本:java -version
    若编译版本高于运行版本,会导致类无法加载,需统一Java环境版本

4. 验证主方法签名

确认Main类中的main方法签名完全符合规范:

public static void main(String[] args)

你的代码中签名是正确的,但如果存在拼写错误(比如String小写、参数名错误等),也会导致JVM无法识别主类

内容的提问来源于stack exchange,提问作者Drax

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 17:10:05