小白求教:java中modulepath与classpath区别是什么? 小白一个!在给java web项目build path的时候,发现library中有两个目录modulepath和classpath,查了一会没查到,求教老哥们这两个有啥区别呀? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 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 系统模块的 PackageModulePath 下普通模块中的 Class 只能看到 module-info 中定义的依赖模块中导出的 Package,也看不到 Unnamed Module 中的内容。根据这些规则,如果项目还是使用 ClassPath,则对项目来说没有影响,项目也不需要定义模块依赖。另外,项目的依赖可以放在 ClassPath 上,也可以放在 ModulePath 上,区别是放在 ModulePath 上的话不能使用模块中未标记为导出的 Package。这里需要解释一下 Unnamed Module。Unnamed Module 是一个特殊的,自动生成的 Module,所有 ClassPath 下的内容在 Java9 中都是挂在 Unnamed Module 名下的。对于同一个 ClassLoader,只有一个 Unnamed Module。 java调用ocx控件问题!~急~~~急~~急~~! 求自定义异常类统一处理项目的全部异常方法 级联查询(回答就有分) java中怎样实现闹钟提醒 java http下载 关于Spring MVC 及 Struts MVC 的问题 eb容器本身就是线程安全的 为啥hibernate还要提供锁机制 如何访问weblogic或websphere中的jndi? 如何设置java虚拟机的编码?如何让eclipse能正常显示iso-8859-1的字串? 求助:关于jsp的jdbc数据库驱动的一个奇怪的问题! JSF h:outputLabel不显示内容 Tree结构 把json封装成固定的格式
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。