zoukankan      html  css  js  c++  java
  • java工程中的.classpathaaaaaaaaaaaaaaaa<转载>

    第一部分:
    classpath是系统的环境变量,就是说JVM加载类的时候要按这个路径下去找,当然这个路径下可以有jar包,那么就是jar包里所有的class。 eclipse build path是eclipse工程里需要的包,也是需要的class,本质上没什么区别。 
    你可以测试,比如JDK中有个String类,在java.lang中,那么你自己声明一个别的包,类叫String,然后打个jar包,将这个jar包所在的路径复制到classpath中,在系统的那个String前,这时候你在用String类将是用你自己的,
    因为类加载器加载扫描路径是按顺序的,找到之前的jar里有String,就用了。后面的不在查看。 但是同一类名,还看你导入的包,其实你都可以自己创建一个java.lang包,然后创建一个String类,那就完全冒充JDK的啦  哈哈


    第二部分:
    每个新建java工程(Project)都默认存在的。

    1.指定源文件位置, 对应工程属性Java build path中Source项中的一项, kind="src" 指明为源文件, 源文件路径path, output为这条路径中 源文件编译以后class文件的输出路径。

    2.指定编译以后class文件的默认输出路径, 对应工程属性Java build path中 Source项中的default output path, kind="output"指明为默认 class输出路径, path为相应输出路径。

    3.指定工程所用到的库文件或目录, 对应工程属性Java build path中 Libraries项中的一项, kind="lib"指明为库文件或目录, path为库 文件或目录位置。



    第三部分:eclipse中的.project 和 .classpath文件的具体作用

    .project是项目文件,项目的结构都在其中定义,比如lib的位置,src的位置,classes的位置。如果你的项目中没有.project文件,那么eclipse就不能把它当作一个项目。

    .classpath的位置定义了你这个项目在编译时所使用的$CLASSPATH。

    这些文件你用文本编辑器就能察看了。在一个项目中点刷新的目的是为了更新.project文件中的文件清单,让你把不通过eclipse提交到项目的文件显示出来。

     

    .classpath 文件
           <?xml version="1.0" encoding="UTF-8"?>
    <classpath>
            <classpathentry kind="src" path="src"/>
            <classpathentry kind="src" path="test"/>
            <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
            <classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
            <classpathentry kind="lib" path="lib/dom4j-1.6.1.jar">
                    <attributes>
                            <attribute name="javadoc_location" value="file:/home/wpc/Work/Apache/dom4j-1.6.1/docs/api$
                    </attributes>
            </classpathentry>
            <classpathentry kind="output" path="bin"/>
    </classpath>

      从数据上我们容易看出,上面描述了工程的依赖文件:
    源文件的具体位置(kind="src") 运行的系统环境(kind="con") 工程的library的具体位置信息(kind="lib") 在每个lib的xml子节点中,有关于它的其它配置信息(例如我配置的那个"javadoc_location") 项目的输出目录(kind="output")

    总体上说这个文件就是配置整个工程的运行环境。

    .project 文件
         <?xml version="1.0" encoding="UTF-8"?>
    <projectDescription>
        <name>CreateInterpret</name>
        <comment>JavaCC Nature@key 32303037303632392D3130303020437265617465496E746572707265742F777063 </comment>
        <projects>
        </projects>
        <buildSpec>
            <buildCommand>
                <name>sf.eclipse.javacc.javaccbuilder</name>
                <arguments>
                </arguments>
            </buildCommand>
            <buildCommand>
                <name>org.eclipse.jdt.core.javabuilder</name>
                <arguments>
                </arguments>
            </buildCommand>
        </buildSpec>
        <natures>
            <nature>org.eclipse.jdt.core.javanature</nature>
            <nature>sf.eclipse.javacc.javaccnature</nature>
        </natures>
    </projectDescription>

     从数据上看,我们可以了解到这些配置主要是描述工程的基本信息:
    工程名<name></name> 工程注释描述<comment></comment> 运行时需要的额外Eclipse插件<natures></natures>,及其具体加载方式信息<buildSpec></buildSpec>

    如果你在开发过程中向工程里面加入了很多额外的插件,则必然会导致你的Eclipse启动速度变慢。在这种情况下,你可以到这个文件里面去掉一些插件,不过这样一来你在开启那些关联文件的时候会加载那些插件。

    .settings 文件

         里面存放各种插件的配置文件。

    以上是简单介绍了Eclipse的Project相关的隐藏配置文件.

     

    PS:

    我们发现几个问题,工程名是由.project中的<name>标签定义的,而不是文件目录名;

    类路径是通过classpathentry属性定义的;

    将某个工程作为类路径是这么定义的:

    <classpathentry combineaccessrules="false" kind="src" path="/Sepsif"/>

    其中/Sepsif是与Sepsif Samples同处一个根目录的另一个工程;

    <classpathentry kind="output" path="bin"/>定义的是将class文件输出的目录 

  • 相关阅读:
    'Undefined symbols for architecture i386,clang: error: linker command failed with exit code 1
    The codesign tool requires there only be one 解决办法
    XCode iOS project only shows “My Mac 64bit” but not simulator or device
    Provisioning profile XXXX can't be found 的解决办法
    UIView 中的控件事件穿透 Passthrough 的实现
    Xcode4.5出现时的OC新语法
    xcode 快捷键(持续更新)
    打越狱包
    php缓存与加速分析与汇总
    浏览器的判断
  • 原文地址:https://www.cnblogs.com/zhangzs000/p/6032466.html
Copyright © 2011-2022 走看看