java,scala项目中classpath问题详解

首先要明确一点,classpath针对的是.class文件,也就是需要运行.class文件的程序才有关系,jvm是运行.class文件的。classpath用来解决第三方jar包的依赖关系。

,所以classpath关系java和scala等基于jvm的语言体系。

下面以java web项目为例:

  一个路径是源码路径,源码指的是你写java代码的项目工程的src。一个路径是类路径,即是classpath。而classpath一般指的是WEB-INF/lib或者classes。

这个目录你在打包之前可以将需要的第三方jar包放到lib下。因为lib的搜索优先级大于classes,即是说程序会先扫描 lib/,如果没有找到需要的在扫描classes,最后子找不到则抛出classpath异常,或缺少依赖jar包的异常。

另外scala项目,如spark应用程序:

这个classpath一般在源码时指src/main/resources目录

而编译打包(笔者用的是maven打包)之后,会出现target目录,这时候的类路径classpath指的是target/classes


猜你喜欢

转载自blog.csdn.net/mrpiont/article/details/79767279