java中的path和classpath是很多java初入者比较困惑的两个变量。本文简单列举二者区别。
PATH and CLASSPATH的区别
1)第一个主要的不同点就是PATH是用来找到那些jdk的二进制文件比如“java”或者“javac”命令,这个些命令是用来运行java program和编译java source文件的。然而,CLASSPATH是被System或者Application ClassLoader用来定位和load那些存储在.class文件中的bytecode。
2) 第二个不同点就是,设置PATH你需要在PATH环境变量中包含JDK_HOME/bin目录,然而设置CLASSPATH我们则需要包含我们的java application中必须用到的.class文件或者jar文件的所有目录。
3) 另外一个典型的不同点就是PATH不能被任何java 设置所覆盖(override)。但CLASSPATH则可以被覆盖(override),我们可以通过命令行的方式,我们可以在"java" 和 “javac"的命令中加上-classpath 或 -cp 来重新设置,或者也可以在JAR包中的Manifest file中使用Class-Path属性来重新设置。
4) 另外PATH是被操作系统用来查找在shell中输入的那些命令(比如前面的“java”等)以及用来查找二进制文件的。然而CLASSPATH仅仅是被ClassLoader用来加载class files的。
如何在Windows 和 Unix中设置PATH 和 CLASSPATH?
在Windows上设置PATH的命令:
set PATH=%PATH%;C:\Program Files\Java\JDK1.6.20\bin
在UNIX/Linux上设置PATH的命令:
export PATH = ${PATH}:/opt/Java/JDK1.6.18/bin
也许你已经发现了,在Linux上是使用冒号(:)来作为分隔符,但在Windows上是使用分号(;)作为分隔符。
在Windows上设置CLASSPATH的命令:
set CLASSPATH=%CLASSPATH%;C:\Program Files\Java\JDK1.6.20\lib
在UNIX/Linux上设置CLASSPATH的命令:
export CLASSPATH= ${CLASSPATH}:/opt/Java/JDK1.6.18/lib
本文分享自 ImportSource 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!