[JAVA]关于classpath的补充

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%------>新的加上原来的)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值