Windows系统命令行编译带Jar依赖的Java文件相关问题咨询
解决方案
是否需要配置系统环境变量CLASSPATH?
不需要。配置全局CLASSPATH会导致所有Java项目默认加载你指定的这几个Jar包,后续其他项目如果用到同名不同版本的依赖时,极易出现类冲突、版本不兼容等难以排查的问题,更推荐在编译、运行时临时指定Classpath。
具体操作步骤
- 打开命令提示符,切换到D盘存放文件的目标文件夹
依次执行以下命令,将你的文件夹名称替换为实际存放文件的文件夹名,如果文件直接放在D盘根目录,可跳过第二条cd命令:D: cd 你的文件夹名称 - 执行编译命令
你可以直接指定所有依赖Jar包,将待编译文件名.java替换为你自己的Java文件名即可:
如果你使用的是Java 6及以上版本,也可以用通配符简化命令,自动匹配当前目录下所有Jar包:javac -cp .;juh-4.1.2.jar;ridl-4.1.3.jar;unoil-4.1.2.jar 待编译文件名.java
命令说明:javac -cp .;* 待编译文件名.java-cp是-classpath的缩写,.代表当前目录,用于让编译器找到你自己编写的Java源文件,多个依赖之间在Windows系统下用分号;分隔。 - 运行编译后的程序
编译完成后会生成对应.class字节码文件,运行时同样需要指定Classpath,将主类名替换为你实际的主类名称即可:
同样可以用通配符简化:java -cp .;juh-4.1.2.jar;ridl-4.1.3.jar;unoil-4.1.2.jar 主类名java -cp .;* 主类名 - 补充注意事项
如果你的Java文件声明了包名,运行时需要写全限定类名,比如包名为com.xxx,主类名为Test,运行命令为java -cp .;* com.xxx.Test。
内容的提问来源于stack exchange,提问作者nitesh
相关产品推荐
相关产品推荐

