您的位置:首页 > 编程语言 > Java开发

[JAVA]关于classpath的补充

2016-05-03 11:35 246 查看
classpath是java虚拟机能够自动识别的变量名称,默认在不设置的状态下,到命令行执行所在目录寻找Class文件:

例子

C:\Documents and Settings\Administrator>d:

D:\>cd java

D:\java>javac WebServer.java

D:\java>java WebServer

在D盘目录下执行成功。

把生成好的Class文件直接拷贝到C盘的一个目录下,切换到C盘该目录(注意一定要有这一步!),直接用java命令执行:

D:\java>c:

C:\Documents and Settings\Administrator>cd My Documents

C:\Documents and Settings\Administrator\My Documents>java WebServer

C:\Documents and Settings\Administrator\My Documents>

执行成功。

切换到E盘下再次执行:

C:\Documents and Settings\Administrator\My Documents>e:

E:\>java WebServer

错误: 找不到或无法加载主类 WebServer

说明JAVA虚拟机是自动在命令执行所在目录寻找Class文件的。

set classpath:临时配置

继续上面的操作环境。

在E盘下直接set classpath到D盘Class文件所在目录:

E:\>set classpath

环境变量 classpath 没有定义

E:\>set classpath=D:\java

E:\>java WebServer

执行成功。

说明java虚拟机寻找可执行文件时是先找环境变量classpath,再找当前路径!注意:

加分号和不加分号的区别:set classpath=D:\java(不加分号)---------->只找classpath,不再找当前路径

set classpath=D:\java;(加分号)----------->先找classpath,如果classpath中找不到,找当前路径(在这种情况下,如果classpath中没有此Class文件而当前目录下有,一样可以执行!)

实际环境中:不要加分号!要保证命令执行和结果的唯一性。(有些需求下可以配置多路径,中间用分号相隔。但即使配置多路径,最后一个路径后如果有分号,那么也会自动加上一个当前目录,所以不要在最后加分号!)

(注:想在当前路径下找一次就用set classpath=.;D:\java;E:\这种形式,这样无论切换到哪个当前路径,都在当前路径下找一次)

(注:path的寻找顺序和classpath正好相反:先在当前目录下找,找不到再到环境变量中去找。临时添加方法:set path=D:\java;%path%------>新的加上原来的)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: