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

编译多个.java文件并带参运行依赖类时遇主类找不到问题

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

错误原因分析

  • 编译后的.class文件默认生成在src目录下,但你运行时的classpath只配置了lib/*.jar,没包含src目录,JVM找不到ClassB的字节码文件。
  • 运行命令里写src/ClassB是错误的,主类名应该直接写类名(无包结构时就是ClassB),而非文件路径。

快速修复方案

直接修改运行命令,把src目录加入classpath,同时正确指定主类名:

# Linux/macOS系统
java -cp "lib/*.jar:src" ClassB 参数1 参数2
# Windows系统(路径分隔符用;)
java -cp "lib/*.jar;src" ClassB 参数1 参数2

比如传入参数Alice Bob,运行后会输出:

Hello Alice from Class B!
Hello Bob from Class A!

更规范的项目结构优化(推荐)

为了区分源码和编译产物,建议指定编译输出目录,避免源码和字节码混放:

  1. 创建bin目录用于存放编译后的.class文件:
mkdir bin
  1. 编译时指定输出目录:
javac -cp lib/*.jar -d bin src/*.java
  1. 运行时指定包含bin目录的classpath:
# Linux/macOS
java -cp "lib/*.jar:bin" ClassB 参数1 参数2
# Windows
java -cp "lib/*.jar;bin" ClassB 参数1 参数2

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 08:40:03