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

成功。