CLASSPATH 以及包和目录结构的关系

原创 2002年12月10日 09:08:00

  CLASSPATH 中包含的的路径中,每一个都是 package 的根,而在此目录下的所有子目录都可以成为 package,条件是,该目录下有封装在该 package 中的类。

  说起来有些抽象,不太好懂,还是举个例子:

set CLASSPATH=%JAVA_HOME%/jre/lib/rt.jar;C:/java

  C:/java 的结构如下:

  那么,C:/java 就是一个 package 的根,在这个目录下写的 Java 程序都不需要使用 package 语句。而 test 目录就是 package 根下的一个子包 test,因为写在 test 中的 java 程序就需要写一个 package 语句,如下






pacakge test;
......

  而 test 下的 xml 又是 test 的子包,其中的 java 程序应该如下:






pacakge test.xml;
......

  当然,在 test 和 xml 目录中的 java 程序也可以不写 package 语句。如果这样,需要在 CLASSPATH 中加上一个当前目录 (.),如

set CLASSPATH=%JAVA_HOME%/jre/lib/rt.jar;C:/java;.

  然后转到相应目录下,如

C:/>cd java/test

  再运行

C:/Java/test>java Test

  这样也可以,因为 “.” 表示当前目录是一个包的根。

  使用包结构最典型的一个例子就是,将一个工程或项目 (Project) 作为一个包的根,然后再根据需要划分子包,如上例目录结构中,myeditor 就是一个小项目,可以作为一个包,假如在其中写一个 MyEdtior 主类,那么,完成之后应该使用如下语句运行:

java myeditor.MyEdtior

  test 中根据测试程序的种类分出了 xml 包和 swing 包,那么相应的运行就是:

java test.Test
java test.xml.Test
java test.swing.Test

  这里调用的三个 Test 类是分别写在 C:/java/test、C:/java/test/xml 和 C:/java/test/swing 中的,在程序的一开始分别有如下申明


 test;
...


 test.xml;
...


 test.swing;
...

  最后还有一点需要注意:注意文件名和目录名的大小写,文件名的大小写会影响类名的大小写,而目录名的大小写会影响包名的大小写。

JRE环境配置中path,Java_home,classpath区别

对于刚刚学习java的初学者们安装开发工具JRE一头雾水。               环境配置中path中存放的路径是安装JRE中bin目录下的路径(也就是在原有path环境配置之中添加javac和...
  • sunny_tuantuan
  • sunny_tuantuan
  • 2017年09月23日 10:34
  • 48

JSP平台添加mail.jar和activation.jar到classpath

1、右键Java Resources下的src->Build path->config build path 2、在弹出框Java Build Path,点击Libraries->Add Exter...
  • haweizi
  • haweizi
  • 2017年02月15日 15:21
  • 732

oracle创建包 含存储过程和函数

create table my_toys (     id varchar2(5),      name varchar2(20),      price number ); --插入测试...
  • wdyr321
  • wdyr321
  • 2013年09月18日 00:25
  • 1159

Java运行命令方式与classpath和getResource之间的关系

本文介绍了Java两种运行方式的区别,classpath的目录组织结构,class类和ClassLoader类的getResource方法的区别 1.Java -jar ***.jar ...
  • foreverOver
  • foreverOver
  • 2015年01月07日 22:32
  • 1714

linux中的目录和分区的关系:

linux中的Home和分区有什么: mount /dev/sda1 paul 上面的命令:挂载分区/dev/sda1到paul目录; umount paul 上面的命令:卸载pa...
  • KuaiLeShiFu
  • KuaiLeShiFu
  • 2017年01月05日 20:47
  • 520

永远不要在Classpath里边放有版本冲突的jar包

很多人都说这个问题太明显,这你还要说。虽然很明显,但是人们还是不断的犯错误。尤其是有时候侥幸心里给了人们可称之机。 只说一个web应用的例子吧。我们一般会在WEB-INF/lib目录中放自己需要的j...
  • gjyalpha
  • gjyalpha
  • 2012年02月16日 20:42
  • 4296

idea修改包目录结构显示

公司用到idea开发工具,不熟悉新的ide,不像eclipse那么熟悉,因此,遇到不少问题,我想像在eclipse中那样看项目的目录结构,一直困扰,今天特意抽出时间来研究了下,记录下,怕以后忘记了。 ...
  • u011915230
  • u011915230
  • 2018年01月14日 00:47
  • 110

Java 中的包, 公共类与Java源码文件的关系介绍

Java 中的包, 公共类与Java源码文件的关系介绍 Java中的一个包就是一个类库单元,包内包含有一组类,它们在单一的名称空间之下被组织在了一起。这个名称空间就是包名。可以使用import关...
  • cay22
  • cay22
  • 2012年12月12日 14:34
  • 2187

activity与intent的关系

在我的apk中发出了这么一个intent   :final Intent intent1 = new Intent(ACTION_DUAL_SIM_CALL, uri1); 然后在app里寻找 相...
  • u013308744
  • u013308744
  • 2015年03月26日 09:39
  • 716

java包和类的关系

只有两个类在同一个包中,其中一个类调用那另一个类时才可以找得到 当然没必要以java开头 以java开始的包那是sun公司已经定义好的类在那个包中 package   A   是你将当...
  • lgstudyvc
  • lgstudyvc
  • 2012年07月31日 10:20
  • 4985
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:CLASSPATH 以及包和目录结构的关系
举报原因:
原因补充:

(最多只允许输入30个字)