javac命令用法如下:
一 . 查看javac的帮助命令
操作步骤:cmd-->回车-- > 输入javac -help ,可查看javac的命令
二. 实例演示:
前提条件:
先来段HelloWorld.java保存到e:\Software\EclipseWorkspace\wirelessqa\src\com\wqa\test\ 文件夹下面
package com.wqa.test;
/**
* @author Xiaopeng
*
*/
public class HelloWorld {
public static void main(String[] args) {
System. out.println("hello world" );
}
}
2.1. 把编译文件存放到类同级目录下
命令: javac e:\Software\EclipseWorkspace\wirelessqa\src\com\wqa\test\HelloWorld.java
结果: 编译文件会存放在类文件同一个目录 下
2.2. 把编译文件存放到指定的位置
命令:javac -d <编译文件存放位置> <类的存位置>
步骤:
1. cmd--回车--重定向到e盘(自已定义,看文件存放在哪里)
2. 输入:E:\>javac -d Software\EclipseWorkspace\classes Software\EclipseWorkspace\wirelessqa\src\com\wqa\test\HelloWorld.java
3. 回车,到文件夹 E:\Software\EclipseWorkspace\classes\com\wqa\test 查看编译结果
2.3. 执行编译过的类文件 **.class文件
命令: java -cp <**.class文件存放的文件夹+空格+类名>
实例演示:
public class HelloWorld {
public static void main(String[] args) {
System. out.println("hello world" );
}
HelloWorld.java 存放到在E盘根目录下,执行javac e:\HelloWorld.java 编译,生成HelloWorld.class
执行:java -cp e:\ HelloWorld
结果:hello world
2.4. 编译有外部引用的类
命令: java -cp <jar包存放路径> <类文件存放路径>
实例演示:
import com.auto.operate.*; //引用AutoMonkey.jar中的类
/**
* @author Xiaopeng
*
*/
public class HelloWorld {
public static void main(String[] args) {
new SystemUtils().print("hello world" );
}
}
这里引用一个包com.auto.operate.*; 这个jar包位于e盘根目录下:AutoMonkey.jar
1. 如果直接 javac E:\HelloWorld.java 则会报错
2. 如果指定jar包 则编译正常:javac -cp E:\AutoMonkey.jar E:\HelloWorld.java
编译成功,重成HelloWorld.class
说明:
如果当前你要编译的java文件中引用了其它的类,但该引用类的.class文件不在当前目录下(或在其他目录下,或在.zip/.jar内),
这种情况下就需要在javac命令后面,加上-cp/-classpath参数来指明这些类的位置。 一般来说有三种指定方式:
① 绝对或相对路径:javac -cp e:/AutoMonkey.jar HelloWorld.java 或 javac -cp ../AutoMonkey.jar HelloWorld.java (其中 .. 表示上一级目录 )
② 系统变量:javac -cp %CLASSPATH% HelloWorld.java (其中:%CLASSPATH%表示使用系统变量CLASSPATH的值进行查找,
这里假设AutoMonkey.jar的路径就包含在CLASSPATH系统变量中)
③ 当前目录: javac -cp ./AutoMonkey.jar HelloWorld.java (其中 . 表示当前目录 )
完整的编译执行一下:
注意: ①-cp的路径不仅指定了所需要的AutoMonkey.jar的位置,还必须指出编译后的Test.class的位置。
② 类路径中的不同项目要用分隔符区分,Unix系统的分隔符是冒号(:),Windows的是分号(;)
转自:http://blog.csdn.net/wirelessqa