java中PATH和CLASSPATH

1、windows中临时设置PATH的方法(只在当前窗口中有效)

F:\ch01>D:\Java\jdk-11.0.7\bin\javac
F:\ch01>set path=D:\Java\jdk-11.0.7\bin\
F:\ch01>javac Welcome.java
F:\ch01>java Hel1o Hello World
F:\ch01>

2、Windows中永久生效设置PATH的方法:

 

 

 

 

 

3、CLASSPATH的初识: 

 1 E:\Res\2023>javac -encoding utf8 MyClassPath.java
 2 Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
 3 
 4 E:\Res\2023>java MyClassPath
 5 Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
 6 MyClassPath测试
 7 
 8 
 9 E:\Res\2023>f:
10 
11 F:\>java E:\Res\2023\MyClassPath #java 类名(java后应该加的是类名,解释器程序接受到java后面的参数认为是类名)
12 Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
13 错误: 找不到或无法加载主类 E:\Res\2023\MyClassPath #所以这里就报找不到该类名
14 
15 F:\>

那怎么办呢?

 E:\Res\2023>java MyClassPath
 Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
 MyClassPath测试

 E:\Res\2023>f:
 
 F:\>java E:\Res\2023\MyClassPath
8Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
 错误: 找不到或无法加载主类 E:\Res\2023\MyClassPath

F:\>set classpath
CLASSPATH=.;D:\Develop\jdk8u281\install_package\lib;D:\Develop\jdk8u281\install_package\lib\tools.jar

F:\>set classpath:E:\Res\2023\ #这个命令有问题。
环境变量 classpath:E:\Res\2023\ 没有定义

F:\>set classpath=E:\Res\2023\ #在win要用这个命令才能成功。

F:\>set classpath
CLASSPATH=E:\Res\2023\

F:\>
F:\>java MyClassPath
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
MyClassPath测试

F:\>

 path和classpath的区别:

path是给操作系统用的,是操作系统用来查找可执行程序用的。操作系统是根据path的值来找执行程序的。

classpath是java解释器程序用的,java解释器是根据classpath的值来找类的。

E:\Res\2023>set classpath=e:

E:\Res\2023>set classpath
CLASSPATH=e:

E:\Res\2023>java MyClassPath #这里为什么早不到呢?原因是CLASSPATH=e:,所以java解释器会在e:目录下早MyClassPath.class时发现没有所以报错

Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
错误: 找不到或无法加载主类 MyClassPath

E:\Res\2023>

E:\Res>cd 2023

E:\Res\2023>set classpath=. #我们一般是把classpath设置为当前目录下。

E:\Res\2023>set classpath
CLASSPATH=.

E:\Res\2023>java MyClassPath
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
MyClassPath测试

E:\Res\2023>

4、永久设置classpath的方法:

添加CLASSPATH变量,设为:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar

5、还有一种方法是执行的时候设置classpath

 1 E:\Res\2023>java MyClassPath
 2 Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
 3 MyClassPath测试
 4 
 5 E:\Res\2023>cd ../../
 6 
 7 E:\>set classpath
 8 CLASSPATH=.
 9 
10 E:\>java MyClassPath
11 Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
12 错误: 找不到或无法加载主类 MyClassPath
13 
14 E:\>java -classpath E:\Res\2023 MyClassPath
15 Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
16 MyClassPath测试
17 
18 E:\>

今天的重点是:

path和classpath的区别:
path是给操作系统用的,是操作系统用来查找可执行程序用的。操作系统是根据path的值来找执行程序的。
classpath是java解释器程序用的,java解释器是根据classpath的值来找类的。

好了,今天就讲到这里,下课。

posted @ 2023-02-04 13:46  江龍  阅读(132)  评论(0编辑  收藏  举报