zoukankan      html  css  js  c++  java
  • path、classpath理解

    path、classpath最常见的场景:环境变量配置

    path环境变量:设置path的作用是让操作系统可以找到JDK命令(指定了JDK命令搜索路径);path环境变量原来Windows里面就有,只需修改一下,使他指向JDK的bin目录,这样在控制台下面编译、执行程序时就可以直接使用java、javac命令了;

    classpath环境变量:告诉类装载器到哪里去寻找第三方提供的类和用户定义的类。JVM和其他JDK工具通过依次搜索平台库,扩展库,和类路径来查找类。

    最通俗可以这样理解:path是操作系统用 ,classpath是java编译器用。

    classpath第二个常见:DOS下执行java代码的编译、执行

    假设你要编译的类文件名叫:HelloWorld.java,其完全路径为:D:/java/HelloWorld.java。但你所在的当前目录是:C:/Documents and Settings/peng>。如果想在这里执行编译,会有什么结果呢?

    (1).C:/Documents and Settings/peng> javac HelloWorld.java 这时编译器会给出如下的错误提示信息:
    error: cannot read: HelloWorld.java
    这是因为默认情况下javac是在当前目录下查找类文件,很明显这个路径不是我们存放类文件的地方,所以就会报错了
    (2).C:/Documents and Settings/peng>javac D:/java/HelloWorld.java
    这时编译成功。
    所以,只要你执行javac命令的目录不是类文件存放的目录,你就必须在javac命令中显式地指定类文件的路径。

    如上两种情况下,classpath就是存放.class等编译后文件的路径。

    第一种情况下,如果我们可以把HelloWorld.java所在的路径,设置为classpath,则可以执行成功;

    第二种情况下,我们采用了绝对路径,指定.class编译文件路径,编译成功;

    但是,如果执行编译、运行java程序时,它引用了第三方的jar包,DOS下执行,就需要-classpath来引入第三方jar或类;

    案例:

    java -classpath 第三方包路径 XXX

    结论:

    (1).何时需要使用-classpath:当你要编译或执行的类引用了其它的类,但被引用类的.class文件不在当前目录下时,就需要通过-classpath来引入类
    (2).何时需要指定路径:当你要编译的类所在的目录和你执行javac命令的目录不是同一个目录时,就需要指定源文件的路径(CLASSPATH是用来指定.class路径的,不是用来指定.java文件的路径的)
     

    Eclipse下创建一个普通java工程,默认会创建两个个文件:.classpath、.project

    .project是项目文件,项目的结构都在其中定义,比如lib的位置,src的位置,classes的位置
    .classpath的位置定义了你这个项目在编译时所使用的$CLASSPATH

    如果创建的是一个maven工程,则通过pom.xml定义项目编译时需要使用的第三方jar或类

    参考:

    http://blog.csdn.net/cheney521/article/details/8672066

    http://blog.csdn.net/ghost_t/article/details/5782999

    http://casheen.iteye.com/blog/540385

  • 相关阅读:
    php实现上传图片保存到数据库的方法
    支付宝集成——如何在回调地址中使用自定义参数
    QQ音乐的各种相关API
    xampp默认mysql密码设置,修改mysql的默认空密码
    node.js 初体验
    php调用empty出现错误Can't use function return value in write context
    ecshop数据库操作函数
    ecshop中$user对象
    为什么我的联想打印机M7450F换完墨粉之后打印机显示请更换墨粉盒?这是我的墨盒第一次灌粉·、
    PHP中获取当前页面的完整URL
  • 原文地址:https://www.cnblogs.com/huahua035/p/6598863.html
Copyright © 2011-2022 走看看