zoukankan      html  css  js  c++  java
  • 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。
    
    

    如下图:

  • 相关阅读:
    qt creator 提醒cannot find lqtmaind collect2: ld returned 1 exit status
    1000以内的完数经典c程序100例
    c# 中dataset的使用
    碰到的gcc和vc函数的区别
    vim简单配置
    莫名其妙的java struts2
    校园网arp病毒防范
    sql语句(逐渐添加中)
    Mysql 关键字保留字(转帖)
    找opencv的lib所在的目录
  • 原文地址:https://www.cnblogs.com/jiangxiaoxian/p/9655792.html
Copyright © 2011-2022 走看看