Windows命令行编译Java程序遇Jar依赖缺失问题(对比Eclipse运行)
在Windows命令行用javac编译时引入lib目录下的所有JAR包
步骤1:切换到工作目录
打开命令提示符(CMD),切换到/workspace对应的Windows本地路径(比如D:\workspace):
cd D:\workspace
步骤2:准备编译输出目录
先创建bin目录存放编译后的class文件,避免和源码混叠:
mkdir bin
步骤3:执行编译命令
用javac的-cp参数指定依赖的JAR包和源码目录,命令如下:
javac -cp "lib\*;src\appFolder" src\appFolder\*.java -d bin
参数说明:
lib\*:匹配lib目录下所有JAR包,Windows环境用反斜杠\,必须用双引号包裹(防止路径含空格时解析失败)src\appFolder:指定源码目录,确保编译时能找到同目录下的依赖类-d bin:指定编译产物输出到bin目录
步骤4:运行编译后的程序
假设主类是appFolder.Main(对应src/appFolder/Main.java),运行命令如下:
java -cp "bin;lib\*" appFolder.Main
这里bin是编译后的class文件目录,lib\*需包含运行时依赖的JAR包。
简化操作:批处理一键编译运行
在workspace目录下创建compile_run.bat文件,内容如下:
@echo off rem 不存在bin目录则创建 if not exist bin mkdir bin rem 编译源码 javac -cp "lib\*;src\appFolder" src\appFolder\*.java -d bin rem 运行主类,替换为你的实际主类名 java -cp "bin;lib\*" appFolder.Main pause
双击该批处理文件即可自动完成编译和运行。
注意事项
- 确保命令行JDK版本与Eclipse中一致,避免版本不兼容问题
- 检查
lib目录下确实存在19个JAR包,路径拼写无误 - 若主类在子包中,需调整运行命令的类名(比如
appFolder.subpackage.Main)
内容的提问来源于stack exchange,提问作者bravo_bravo
相关产品推荐
相关产品推荐

