用例子解释:如何设置CLASSPATH(Java)

原创 2015年12月09日 00:22:09

设置CLASSPATH的目的是让Java执行环境找到指定的Java程序(也就是.class文件)

 

Java程序如何找到并引用所需要的类?

 

1.利用环境变量CLASSPATH。CLASSPATH中定义了很多根目录。运行程序时Java解释器只从这些根目录开始查找一个Java程序用到的类,即根目录和import指出的子目录 。例如,需要从当前目录查找,则需要加入"."。


2.可以把包中的所有.class文件打包为一个jar文件,然后在CLASSPATH中加入该文件的路径。


关于打包:

例如我现在C:\myproj\classes\X\Y下有A.class和B.class,我要打包(内部包含子目录信息)成food.jar

就要这样写:


这样,food.jar就会生成在C:\myproj\classes\下

当java程序中要用到A类的时候可以import X.Y.A

CLASSPATH的设置就是C:\myproj\classes\food.jar


3.可以在编译和运行时加入classpath参数指出所需要的包和根目录:

C:>javac -classpath c:\java\PackJar\food.jar;c:\java;. PackJar.java 

C:>java -classpath c:\java\PackJar\food.jar; c:\java;. PackJar


Window8下CLASSPATH的设置方法:右键计算机,点击属性,出现如下界面。

 

点击左边的高级系统设置



选择高级



点击右下角的环境变量

在系统变量那里找到CLASSPATH

 点击编辑



我的CLASSPATH变量值设置为

.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\jre\lib\rt.jar;C:\myproj\classes;

最前面的是.;

这个的意思是告诉Java程序找类时要先查找当前目录的.class文件


那么当前目录是指什么?

还是用一个具体的例子来说明吧!

例如我现在在C:\myproj\bin下有一个Test.java文件

内容如下:



编译:



以上例子中当前目录就是C:\myproj\bin

可以看到Test.java用到了我自己定义的类A,那它是怎么找到类A的呢?

因为我的环境变量设置了.;

所以会到当前目录找,也就是看C:\myproj\bin目录下有没有直接有一个A.class。

我的A.class没有放在那个目录下,所以必定是没有的。

然后它还会去找,看看是不是系统类等等。

也必定不是。

最后可以看到我还设置了一个路径C:\myproj\classes;

所以会到C:\myproj\classes下看有没有A.class,这时候就找到了A.class。

其实A.class的路径是C:\myproj\classes\X\Y\A.class

找到的原因是我在Test.java里写了import X.Y.*,(导入该目录下的所有类)这个和CLASSPATH的根目录C:\myproj\classes;合起来就可以找到类A了。

另外,也可以写成import X.Y.A


感谢所有让我明白CLASSPATH的你们

版权声明:本文为博主原创文章,未经博主允许不得转载。

classpath和环境变量设置

http://www.360doc.com/content/12/0722/14/820209_225797366.shtml 在没有设置环境变量之前,我们可以通过直接在应用程序中加带相...

Java中-classpath和路径的使用

javac -classpath的使用:javac:如果当前你要编译的java文件中引用了其它的类(比如说:继承),但该引用类的.class文件不在当前目录下,这种情况下就需要在javac命令后面加上...

Java环境变量配置以及classpath详解

下载安装完java,首先要做的就是配置环境变量的系统变量(进入我的电脑,右键选属性,选高级,点环境变量,这样就进入了环境变量配置,我们要配置的是下面的系统变量),一般需要配三个变量path,java_...

运行Java程序-设置classpath

Java命令用于运行Java程序,它会启动Java虚拟机,Java虚拟机加载相关的类,然后调用主程序类的mail()fan...

Apache ActiveMQ实战(1)-基本安装配置与消息类型

ActiveMQ是一种开源的,实现了JMS1.1规范的,面向消息(MOM)的中间件,为应用程序提供高效的、可扩展的、稳定的和安全的企业级消息通信。ActiveMQ使用Apache提供的授权,任何人都可...

关于JAVA项目中CLASSPATH路径详解

在dos下编译java程序,就要用到classpath这个概念,尤其是在没有设置环境变量的时候。classpath就是存放.class等编译后文件的路径。 javac:如果当前你要编译的java文件...

java tomcat 设置classpath 配置文件分离

@echo off rem Licensed to the Apache Software Foundation (ASF) under one or more rem contributor l...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用例子解释:如何设置CLASSPATH(Java)
举报原因:
原因补充:

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