PATH 和 CLASSPATH 的区别

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(importsource)

原文发表时间:2016-05-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏AI派

Python 程序执行时如何显示进度条?

先来说下 tqdm 的使用场景,工作中有时候会遇到这样的问题,想要将某个任务执行很多次,显而易见,可以使用 for 循环来控制它重复执行很多次。

16840
来自专栏栗霖积跬步之旅

git中的merge与rebase

29960
来自专栏Python小屋

Python批量提取PDF文件中的文本

首先需要执行命令pip install pdfminer3k来安装处理PDF文件的扩展库。 import os import sys import time p...

37750
来自专栏Hongten

python开发_filecmp

filecmp模块用于比较文件及文件夹的内容,它是一个轻量级的工具,使用非常简单。python标准库还提供了difflib模块用于比较文件的内容。关于diffl...

12120
来自专栏zhangdd.com

tomcat8 启动报错: ignoring option PermSize=256m处理方法

Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=512m; suppor...

19810
来自专栏大内老A

学习ASP.NET Core, 怎能不了解请求处理管道[5]: 中间件注册可以除了可以使用Startup之外,还可以选择StartupFilter

中间件的注册除了可以借助Startup对象(DelegateStartup或者ConventionBasedStartup)来完成之外,也可以利用另一个叫做St...

35170
来自专栏BY的专栏

终端显示树状文件结构

40280
来自专栏Small Code

【Python】numpy 中的 copy 问题详解

这篇文章本是我在 segmentfault 上的一个回答,但是越来越觉得有必要单独拿出来,毕竟这个问题挺常见的。具体可参看 numpy 官方文档 。 正文 nu...

222100
来自专栏JetpropelledSnake

Python入门之面向对象module,library,package之间区别

背景 Python中有一些基本的名词,很多人,尤其是一些初学者,可能听着就很晕。 此处,简单总结一下,module,library,package之间的大概区别...

324110
来自专栏Java学习123

Linux下安装配置MemCached(以及libevent)

29880

扫码关注云+社区

领取腾讯云代金券