javac和java命令的详解
javac和java命令总结
一、准备
首先我们在桌面,开始->运行->键入cmd 回车,进入windows命令行
可知,当前默认目录为C盘Users文件夹下的Administrator文件夹。一般而言,我们习惯改变当前目录。由于windows有磁盘分区,若要跳到其他磁盘,例如E盘,有几种方法:
1、输入命令: pushd 路径(此命令可将当前目录设为所希望的任一个已存在的路径)
例子:pushd e: 进入E盘,注意盘附后加冒号。
pushd e:/test 进入E盘的test文件下
2、输入命令: e: 转移到e盘,然后再输入 cd 转移到所希望的已知路径。
二、javac
javac是用来编译.java文件的。命令行下直接输入javac可以看到大量提示信息,提示javac命令的用法,我只知道常用的。
javac -d destdir srcFile
其中:1、-d destdir是用来指定存放编译生成的.class文件的路径。(若此选项省略,那么默认在当前目录下生成.class文件,并且没有生成包文件夹;当前目录可以用“.”来表示,即:javac -d . srcFile )
注意:添加-d选项除了可以指定编译生成的.class文件的路径外,最大的区别是可以将源文件首行的package关键字下的包名在当前路径下生成文件夹。
2、srcFile是源文件.java文件的路径。
例如:有这样一个简单的java类,路径为E:\test\JavacTest.java:
代码如下:
package com.stopTalking.test;
public class JavacTest {
public static void main(String[] args) {
byte a = 5;
short b = 6;
System.out.println("JavacTest [a=" + a + ", b=" + b + "]");
}
}
在e:test下,输入 javac JavacTest.java ,便在当前路径下生成了一个JavacTest.class的文件:
注意:JavacTest.java是一个首行标注了package的java文件,而此时它在硬盘上的目录并未对应它的包名,所以,使用java com.stopTalking.test.JavacTest运行时是无法找到该java的。
如果若输入,javac –d . JavacTest.java ,那么生成的JavacTest.class便在当前目录下生成的包文件中了,就是在e:test下有个com/stopTalking/test文件夹,JavacTest.class文件就是在com/stopTalking/test下面,在e:/test下执行java的命令是:
java com/stopTalking/test JavacTest
我自己有一个文件,在D:\java\javacode\eclipse\JavaSe\src\com\fzl\classics50\Prog1.java,工程名JavaSe。
包名是com.fzl.classics50。
package com.fzl.classics50;
import java.awt.Choice;
import java.util.Scanner;
public class Prog1 {
public static void main(String[] args) {
int n=10;
int count=fun(n);
System.out.println(+n+":"+count);
}
private static int fun(int n) {
if(n==1 || n==2){
return 1;
}else{
return fun(n-1)+fun(n-2);
}
}
}
编译的时候都要在源文件的目录下,我在D:\java\javacode\eclipse\JavaSe\src\com\fzl\classics50下面执行编译命令,
1.我执行:javac -d .Prog1.java
就会在当前目录下生成文件夹com\fzl\classics50 ,Prog1.class就在这个文件夹下
运行:在D:\java\javacode\eclipse\JavaSe\src\com\fzl\classics50下面:java com.fzl.classics50.Prog1
显示:10 : 50
成功。
2.我如果执行 :javac -d D:\java\javacode\eclipse\JavaSe\bin\com\fzl\classics50 Prog1.java
就会在 D:\java\javacode\eclipse\JavaSe\bin\com\fzl\classics50下生成com\fzl\classics50,Prog1.class就在这下面。
运行:在D:\java\javacode\eclipse\JavaSe\bin\com\fzl\classics50下面执行:
java com.fzl.classics50.Prog1
显示: 10:50
成功。
3.我如果执行:javac -d D:\java\javacode\eclipse\JavaSe\bin Prog1.java
就会在 D:\java\javacode\eclipse\JavaSe\bin\com\fzl\classics50下生成Prog1.class
运行:在 D:\java\javacode\eclipse\JavaSe\bin下执行:
java com.fzl.classics50.Prog1
显示:10 :50
成功。
4.如果执行:javac Prog1.java
就会在当前目录下生成Prog1.class文件
运行:在当前目录下执行:java com.fzl.classics50.Prog1
显示:10:50
成功。