[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%------>新的加上原来的)
例子
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%------>新的加上原来的)
相关文章推荐
- 设计模式Java版,Gitbook开源电子书,含源码
- Spring ---annotation (重点)--Resource, Component 重要!!!
- 重新理解OOP(java)
- java常用正则表达式
- Java安全编码之用户输入
- JAVA中成员变量和静态变量区别
- MyBatis5:MyBatis集成Spring事物管理(上篇)
- SpringMVC环境下实现的Ajax异步请求JSON格式数据
- Spring AOP之通过注解编写AOP
- Java Swing组件基础
- hdoj2014(java)青年歌手大奖赛_评委会打分(数组万岁!!!)
- 在Java中,如何把一个程序的结果需要保存起来,供下一个程序使用的方式
- JAVA经典例题求素数
- hdoj2013(java) 找规律 蟠桃记
- 调用cxf生成的接口异常修复javax.xml.bind.UnmarshalException - with linked exception
- hdoj2012(java)素数判定
- Spring入门之初学注解03(@Controller、@Service、@Repository)
- hdoj2011 (java)多项式求和
- for语句
- JAVA多线程编程——JAVA内存模型