linux path 与 classpath 区别

一、OS依据path中的路径信息来寻找可执行指令;

例如:
cat /etc/profile
我们就可以在任意目录执行hadoop / hdfs / yarn / java 等相关命令了

export HADOOP_HOME=/opt/hadoop/hadoop-2.6.0
export JAVA_HOME=/home/jdk1.8.0_20
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$JAVA_HOME/bin:
二、JVM依据CLASSPATH中的路径信息来寻找可执行指令(.class文件)及配置信息(*.properties)

CLASSPATH环境变量的作用是指定Java类所在的目录。
classpath与import关键字是相关的,程序编译(及运行)的时候,遇到import关键字,编译器就会到classpath参数对应的路径中去寻找对应的.class类文件,将其倒入,例如:

import org.apache.hadoop.hive.ql.Driver;

如果这个类没有在classpath中找到,就会报我们常见的class xxx.xxx.xxx not found
我们可以通过指定classpath 把缺少的类导进去,例如:

javac -classpath ../hive-exec-1.1.0.jar  Xxx.java

当然我们也可以把我们常用的jar直接配置到环境变量中,不用每次都指定classpath
以下是关于程序目录的一些说明:

1、src不是classpath, WEB-INF/classes,lib才是classpath.
2、WEB-INF/classes目录存放src目录Java文件编译之后的class文件,xml、properties等资源配置文件,这是一个资源的入口。
3、lib和classes同属classpath,两者的访问优先级为: lib>classes。

如下图:
945048-20180916130538218-1496556434.png

posted on 2018-09-16 12:07 姜小嫌 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/jiangxiaoxian/p/9655792.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值