Dos窗口javac|java(编译|运行)---java文件
前期准备:
- 安装JDK(1.6或1.7或1.8或1.9) 如何安装---百度
- 配置环境变量 如何配置---百度
说明:
下载好JDK(Java Development Kit java开发工具包),在安装过程中会安装两个部分一个是jdk(java develolpment kit)另一个是jre(java runtime enviroument),不要将jdk和jre安装到同一个目录,因为jre会覆盖jdk,导致无法编译java源文件。
在配置环境变量时,需要配置path,但大部分会配置JAVA_HOME,目的是为了切换JDK版本时更方便,只需要更改JAVA_HOME就可以,不用再改path。
配置path的目的是为了让javac命令成为一个全局命令,即在任何一个目录文件下都可以调用javac命令。同样配置classpath(类路径),也是为了让编译后生成的字节码文件(.class文件),在任何目录下都可以运行。
切入正题:在Dos窗口操作Java文件,分两种情况,一是类文件中不含package,二是包含。
类中不含package
在D盘创建一个文件夹test,在test中创建Hello.java文件,内容如下:
public class Hello{
public static void main(String[] args){
System.out.println("Hello World!");
new MyClass();
}
}
class MyClass{
MyClass(){
System.out.println("Yes,It's me!");
}
}
-cp <路径> 指定查找用户类文件和注释处理程序的位置
-d <目录> 指定放置生成的类文件的位置
- 在D盘根目录下操作:
在Dos窗口输入javac,编译源文件,如下:
不可这样写 javac -cp ./test Hello.java (/test前有点) 也不可这样写 java -cp test Hello.java 会报错,如下图:
编译成功后,在D盘的test文件夹中产生两个字节码文件
在Dos中输入java命令运行字节码文件,如下:
不可这样写 java -cp . test/Hello 会报错,自测。
扩展:
在编译的时候也可以将字节码文件放到其他目录下,代码如下
javac -cp . -d test/abc test/Hello.java (前提是,有abc这个文件夹),代码自测。
运行时,代码如下:
java -cp test/abc Hello 代码自测。
对比编译和运行时 -cp后路径的写法和文件的写法。
- 在其他盘根目录下操作(比如在C盘操作D盘上的文件)
在Dos窗口c盘,输入javac,编译源文件,将字节码文件放在C盘的bcd文件夹中,代码如下:
不可写成 javac -cp D:/test -d C:/bcd Hello.java 会报错,自测。
运行时代码如下:
不可写成 java -cp ./bcd Hello 也不可写成 java -cp . C:/bcd/Hello 会报错,自测。
类中含有package
将上面的Hello.java中的代码进行改进,如下:
package aaa;
public class Hello{
public static void main(String[] args){
System.out.println("Hello World!");
new MyClass();
}
}
class MyClass{
MyClass(){
System.out.println("Yes,It's me!");
}
}
- 编译与运行和java源文件在同一个盘符下。
编译时,代码如下:
运行时代码,如下:
比较编译时和运行时cp后路径的写法,和文件的写法。
- 不在同一个盘符下(按照上面的例子自写)
总结:无论操作和Java源文件是否在同一个盘符下,编译和运行操作基本是固定的;
编译 javac [-cp 路径] [-d 路径] 文件名.java(可以是路径名,如test/Hello.java)
运行 java [-cp 路径] 类名(可以是类名或全类名,不是路径名test/Hello)
中括号中内容可写可不写,看情况。多注意路径的写法。