社区
Java EE
帖子详情
小白求教:java中modulepath与classpath区别是什么?
BlueCeasar
2019-05-15 02:01:18
小白一个!在给java web项目build path的时候,发现library中有两个目录modulepath和classpath,查了一会没查到,求教老哥们这两个有啥区别呀?
...全文
3368
1
打赏
收藏
小白求教:java中modulepath与classpath区别是什么?
小白一个!在给java web项目build path的时候,发现library中有两个目录modulepath和classpath,查了一会没查到,求教老哥们这两个有啥区别呀?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Unicode Escapes
2019-05-15
打赏
举报
回复
7
ModulePath 的概念和ClassPath 类似,不过 ModulePath 中的 Jar 包或 Jmod 文件被当作 Module 来处理,而 ClassPath 中的的 Jar 包,无论是否模块化都会被当作传统 Jar 包处理。
Java9 制定了以下规则以保证旧 Jar 包和项目可以无缝的迁移到新的 Java 版本上:
所有 ClassPath 下的 Jar 包,Class,资源文件等都在一个 Unnamed Module 中
Unnamed Module 的 Class 可以看到和使用所有 Module Path 中导出的 Package,所有 Class Path 中的 Package,以及所有 JDK 系统模块的 Package
ModulePath 下普通模块中的 Class 只能看到 module-info 中定义的依赖模块中导出的 Package,也看不到 Unnamed Module 中的内容。
根据这些规则,如果项目还是使用 ClassPath,则对项目来说没有影响,项目也不需要定义模块依赖。另外,项目的依赖可以放在 ClassPath 上,也可以放在 ModulePath 上,区别是放在 ModulePath 上的话不能使用模块中未标记为导出的 Package。
这里需要解释一下 Unnamed Module。Unnamed Module 是一个特殊的,自动生成的 Module,所有 ClassPath 下的内容在 Java9 中都是挂在 Unnamed Module 名下的。对于同一个 ClassLoader,只有一个 Unnamed Module。
java
9
class
path
_
Java
9
中
的
Module
,
Module
Path
和
Class
Path
Java
9 引入模块系统以增强大型项目的隔离和依赖管理,但其设计引发争议,迁移成本高。
Module
Path
和
Class
Path
分别处理模块化和非模块化Jar包,未模块化的Jar包通过Automatic
Module
概念得以兼容,允许访问所有模块。然而,Automatic
Module
的命名规则引起争议,推荐维护者在MANIFEST.MF
中
指定Automatic-
Module
-Name以确保未来迁移的顺利进行。
class
path
和moudle
path
的
区别
本文深入探讨了
Java
9
中
Module
Path
与
Class
Path
的
区别
,详细解释了
Module
Path
如何处理Jar包和Jmod文件,并阐述了
Java
9为确保旧项目平滑迁移至新版本所制定的规则。文
中
还特别介绍了Unnamed
Module
的概念及其在
Java
9
中
的作用。
eclipse
中
导入jar包时
class
path
与moduele
path
的
区别
,jia包应该放到哪个下
本文深入探讨了
Java
9
中
Class
path
与
Module
Path
的
区别
,解析了它们如何处理Jar包,以及
Java
9制定的规则如何确保旧项目无缝迁移至新版本。了解Unnamed
Module
的概念及其在
Java
9
中
的作用。
PATH
与
CLASS
PATH
区别
本文解释了系统路径(
path
)与
Java
编译及运行路径(
class
path
)的
区别
。
path
用于指定系统可执行文件的位置, 而
class
path
则指向
Java
类文件和库文件的位置。两者虽然都涉及文件路径, 但其作用和应用场景不同。
HIT 软件构造 Junit包导入位置的错误原因分析及解决办法
本文讲述了作者在实验
中
遇到的
Java
NoClassDefFoundError,发现是由于Junit包误置于
Module
path
而非
Class
path
。通过调整配置,将Junit移到
Class
path
下,解决了问题。并解释了
Class
path
和
Module
path
的
区别
,以帮助理解为何此类错误发生。
Java EE
67,536
社区成员
225,852
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章