分类: Java
2010-09-17 13:47:10
|
e.g.:
1)javac edu.nctu.mot.A.java
在编译时期,不会自动把命令行中所指定的原始文件中的“.”转换成“/”,我们指定什么文件,编译器一律认为是单纯的文件名。所以会产生错误。
2)javac -classpath .\my\edu\seu\test A.java
A.java并非通过make机制来编译,而是我们手动输入指令编译,所以根本不会用到类路径引用表(如果A中引用其他类则会通过make机制进行编译,将会使用类路径引用表机制)。因此编译器根本找不到A.java
3)javac d:\my\edu\seu\test\A.java
在指定路径可以找到该文件,可以编译成功。
2.运行时期动态链接
1)java edu.nctu.mot.A
类路径应用表中只有一个“.”,以此为起点,系统会自动把“.”转换成“/”,因此,会找到A.class。
2)java -classpath .\edu\nctu\mot A
类路径引用表中只有一个 ".\edu\seu\test",以此为起点,系统会找到A.class,可是在检查类文件内部信息的时候,发现A.class属于edu.seu.test这个package,所以根据类路径引用和相对路径的机制,会到.\edu\seu\test\edu\seu\test这个目录下寻找,因此会出现错误信息。
3)java d:\my\edu\seu\test\A
系统无法接受这样的指令