icon-cookie
The website uses cookies to optimize your user experience. Using this website grants us the permission to collect certain information essential to the provision of our services to you, but you may change the cookie settings within your browser any time you wish. Learn more
I agree
blank_error__heading
blank_error__body
Text direction?

eclipse与intellij idea中的classpath分析

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/SkyeBeFreeman/article/details/56495637

初学Spring框架的时候,对eclipse和intellij idea中的classpath的定义不是很理解,每次都是懵懵懂懂地使用,这里将进行一次细致的讨论。

1. 什么是classpath?

    classpath相当于Java执行环境,它指定了一些常用的包或jar的位置,方便我们对项目文件的使用,而不必重复多次写所需要文件的位置。
    在classpath中可能需要使用所有相同名字的资源文件,如果用classpath:只会加载第一个,而使用classpath*:前缀则能够加载所有符合类型的文件。然而,使用classpath*:需要遍历所有的classpath,加载速度很慢,因此您应该尽量避免使用classpath*。

2.eclipse中的classpath分析

    在eclipse下的Spring项目中,有一个.classpath文件,里面配置了整个项目的运行环境(如下图所示)。

代码解释:(转载于http://mingyundezuoan.iteye.com/blog/2224973)

    kind: 
        src:源文件的具体位置,对应java build path操作中source中的一项路径。
        con:运行的系统环境。
        lib:库文件或目录, path为库文件或目录位置。注意: 当指定库文件时(非库目录, 通常是jar包), 应当包             含文件名。
        output:指明为默认class输出路径, path为相应输出路径。注意: 这一条在文件中有且只能有一条。
        var:指定工程所用到的库文件或目录, 对应工程属性Java build path中Libraries项中的一项,指明带有全             局编译路径中设置的变量(Window->Prefrences->Java->Build Path->Classpath Variables),path为             这个变量目录下的库文件。

    path:源文件路径。
    output:为这条路径中源文件编译以后class文件的输出路径,对应java build path操作中source选项面板下方            default output path ,所指代的路径。

    including:额外包含其他目录下的所有java文件。
    excluding:不包含的文件。

3.intellij idea的classpath分析

    首先在打开的项目窗口打开File->Project Structure...,得到如下图所示的项目结构:

    

    在最上面一栏可以看到这里是Source标签中的详细信息,在右边可以看到项目里面目录的类型,有Source Folders、Resource Folders等等,这里指的是Source Folders表示的都是代码源文件目录,生成的class文件会输出到target->classess文件夹中,但是里面的源文件不会复制到target->classes文件夹中,Test Source Folders表示的都是测试代码源文件目录,生成的class文件同样会输出到target->classess文件夹中,并且里面的源文件不会复制到target->classes文件夹中,而Recource Folders表示的都是资源文件目录,这些目录里面的文件会在代码编译运行被直接复制到target->classess文件夹中。可以这么讲,target->classes即为classpath,任何我们需要在classpath前缀中获取的资源都必须在target->classes文件夹中找到,否则将出现java.io.FileNotFoundException的错误信息。

    如果您在项目中想添加一些自己的目录到Source Folders、Resource Folders这样的目录分类里来实现编译过后正确地文件输出,则可以点击需要设置的文件夹,再在文件结构窗口上方的Make as:后面选择正确的目录类型即可。

Measure
Measure
Related Notes
Get a free MyMarkup account to save this article and view it later on any device.
Create account

End User License Agreement

Summary | 1 Annotations
使用classpath*:需要遍历所有的classpath,加载速度很慢,因此您应该尽量避免使用classpath*。
2017/10/17 10:34