Chinaunix首页 | 论坛 | 博客
  • 博客访问: 229525
  • 博文数量: 108
  • 博客积分: 3092
  • 博客等级: 中校
  • 技术积分: 1172
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-25 16:35
文章分类

全部博文(108)

文章存档

2011年(3)

2010年(43)

2009年(19)

2008年(43)

我的朋友

分类: Java

2010-09-17 13:47:10

1.编译时期的package运作机制
javac类似于make机制,但是对于当前编译的文件则是纯手动编译的方式。

A.java

package edu.seu.test;
public class A
{
   public static void main(String[] args)
  {
     System.out.println("I'm A");
  }
}


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

系统无法接受这样的指令

 

阅读(1426) | 评论(0) | 转发(0) |
0

上一篇:[zz] Java classLoader

下一篇:1-way SSL & 2-way SSL

给主人留下些什么吧!~~