javac -d <directory>
指定放置生成的类文件的位置。
javac -cp <path>
指定查找用户类文件和注释处理程序的位置
javac是命令行里程序编译的命令。java是运行程序的命令。
-d
的意思是将源文件编译后生成的字节码文件(bytecode),扩展名为.class,放置在你想要的文件<directory>
里。
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命令的许多用法。
欢迎留言指正!