栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

什么是类路径地狱?对于Java来说确实是一个问题吗?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

什么是类路径地狱?对于Java来说确实是一个问题吗?

类路径地狱是Java进行的那种动态链接的不幸结果。

您的程序不是固定的实体,而是JVM在特定实例中加载的确切类集。

由于解析规则,在不同平台上甚至同一平台上的同一命令行可能会导致完全不同的结果。

标准库可能存在差异(非常常见)。图书馆可以彼此隐藏(甚至可以使用旧版本代替较新的版本)。目录结构可能会使解析混乱。同一类的不同版本可能会出现在多个库中,并且将使用遇到的第一个库,依此类推。由于Java按照规范使用了第一个遇到的策略,因此未知的顺序依赖性可能导致问题。当然,由于这是命令行并且是规范的一部分,因此没有真正的警告。

这仍然是一个问题。例如,在Mac
OS上,Apple的可怕支持意味着您的计算机最终会带有多个JVM和几个JRE,并且您永远都不可能轻易地随意放置东西。如果您有多个针对特定但不同版本的其他库编译的库,则可能会遇到问题等。

但是,此问题不是Java固有的。我记得在90年代编程Windows时遇到的DLL地狱情况。在任何情况下,您都必须依靠文件系统中的某些内容来组装程序,而不是拥有一个定义明确的可执行文件,这是一个问题。

但是,此模型的好处仍然很大,因此我愿意容忍这种情况。Sun方面也朝着正确的方向迈出了一步。例如,Java6允许您仅使用jar指定目录,而不必枚举它们。

顺便说一句:如果您正在使用使用非默认类加载器的环境,类路径也是一个问题。例如,由于类加载器不兼容,我在Eclipse下运行诸如Hibernate或Digester之类的问题很多。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/463649.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号