javac -d,-cp是什么意思

本文详细介绍了Java编译命令`javac`的两个关键选项:-d用于指定生成类文件的目录,-cp用于设置类路径。通过实例演示了如何使用这两个选项进行编译和执行Java程序,强调了类路径设置的正确性和包名在类名前的使用。同时,提到了使用`javac --help`查看更多命令用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

javac -d <directory>指定放置生成的类文件的位置。
javac -cp <path>指定查找用户类文件和注释处理程序的位置

具体解释

javac是命令行里程序编译的命令。java是运行程序的命令。

-d

-d的意思是将源文件编译后生成的字节码文件(bytecode),扩展名为.class,放置在你想要的文件<directory>里。

-cp

javac -cp和java -cp都是设置查找相应文件的路径,比如:
java -cp是告诉java.exe寻找字节码文件(.class)的位置

例子

编译

package是我的包名,Main.java是我的源文件。“d:\lab10\src\package\Main.java”是为了告诉javac.exe到哪里去找源文件。
“d:/classes”是用户设定的生成的字节码文件所在位置

javac -d d:/classes d:\lab10\src\package\Main.java

命令执行成功后可去“d:/classes”里验证一下,会发现生成的.class文件。

执行

java -cp d:/classes package.Main

这一步是将上一步在“d:/classed”生成的字节码文件交给JVM运行。
这里注意两点:
1)源文件放在包里的,类名前要加包名,比如上述例子的“package”就是“Main”类的包名
2)java命令 -cp后的文件地址不能进到包里面
比如我的.class文件路径为“d:/classes/lab10/Main.class”,lab10为包名
那么不能写成java -cp d:/classes/lab10 package.Main

不满足(1)(2)可能会出现以下错误:

错误: 找不到或无法加载主类 Main
原因: java.lang.ClassNotFoundException: Main

3)java命令的参数需要一个类,填写类名,不要加后缀名,比如上述的“package.Main”后面什么也没有。

其他

在命令行里输入

javac --help

即可看到javac命令的许多用法。

欢迎留言指正!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值