当前位置: 首页 > news >正文

九五至尊娱乐场网站响应式设计

九五至尊娱乐场网站,响应式设计,想要推广网页正式版,广州市住房和城乡建设局阳光家缘Java扩展机制在Java教程中被描述为“一种标准的#xff0c;可伸缩的方式#xff0c;以使自定义API可供Java平台上运行的所有应用程序使用。” 如了解扩展类加载中所述 #xff0c;“扩展框架利用类加载委托机制”#xff0c;其中扩展类在rt.jar #xff08;和相关的JAR可伸缩的方式以使自定义API可供Java平台上运行的所有应用程序使用。” 如了解扩展类加载中所述 “扩展框架利用类加载委托机制”其中扩展类在rt.jar 和相关的JAR中的引导类之后但在从典型类路径加载的类之前加载。 扩展目录的工作方式与类路径有点类似因为扩展目录的一部分是类加载机制的一部分扩展目录中JAR中可用的类对Java应用程序可用。 但是有一些关键的区别下面将重点介绍其中一些。 特性 类路径 扩展机制可选软件包 范围 通常针对特定应用 -classpath / -cp java.class.path 可执行JAR清单的类路径 主机上可能所有的JRE CLASSPATH环境变量 在特定JRE中运行的所有JVM java.ext.dirs 所有主持人的JRE Solaris /usr/jdk/packages/lib/ext Linux /usr/java/packages/lib/ext Windows %SystemRoot%\Sun\Java\lib\ext 如何指定 .jar文件 通过名称明确指定包括.jar 通配符*将所有具有.jar扩展名的所有JAR文件匹配 .class文件 包含指定的.class文件的目录 加载指定目录中的所有JAR文件即使扩展名不是.jar或根本没有扩展名。 类加载顺序 引导程序和扩展加载之后。 在引导程序之后但在类路径之前。 最值得一提的最重要观察结果之一是即使扩展名机制没有.jar扩展名其扩展机制仍会提取扩展名目录中的所有JAR格式文件。 这样做的含义是虽然可以将位于类路径目录中的JAR的名称更改为.jar以外的扩展名以使通配符不起作用但该技术不适用于扩展名目录。 我将在本文中使用一些简单的示例来演示其中的一些差异。 接下来的两个代码清单是一个非常简单的HelloWorld类和一个名为Main的主应用程序类它使用HelloWorld类。 HelloWorld.java public class HelloWorld {Overridepublic String toString(){return Hello, World!;} }Main.java import static java.lang.System.out;public class Main {public static void main(final String[] arguments){out.println(new HelloWorld());} } 为了演示类路径和扩展机制 可选软件包 之间的主要区别我将把已编译的HelloWorld.class文件归档到一个名为HelloWorld.jar的JAR中并将其放置在与已编译的Main.class文件不同的目录中。 为了演示传统类路径的用法我将HelloWorld.jar文件放置在名为C:\hello的目录中并将通过通配符*访问该JAR以便Main使用。 接下来的两个屏幕快照对此进行了演示。 前面的两个图像表明即使我已将Java Main应用程序从当前目录中删除Java Main应用程序仍然可以加载HelloWorld.class文件因为已明确告知Java启动程序 通过-classpath选项在C:\hello查找它C:\hello 使用扩展机制可选软件包可以加载类而无需将其放在同一目录中并且没有明确的类路径规范。 这显示在下一个屏幕快照中。 上一个屏幕快照展示了Java启动器甚至不需要在同一目录中或在其类路径中指定的HelloWorld.class时该类位于扩展可选软件包目录中的JAR中。 人们通常认为这是使用扩展机制的好处因为使用该JRE的所有应用程序或主机上可能的所有应用程序都可以看到相同的类而无需在类路径中明确指定它们。 使用指示应用程序从JAR加载类的传统类路径方法包含.class文件的JAR文件需要以.jar扩展名结尾。 下一个屏幕快照演示了在同一类路径引用的目录中将HelloWorld.jar重命名为HelloWorld.backup时发生的情况。 最后一张图片演示了当类路径引用目录中的JAR文件没有.jar扩展名时遇到NoClassDefFoundError 。 可能有些令人惊讶的是扩展可选软件包机制的工作方式不同。 而是将在扩展名指定目录中加载所有JAR文件而不管其扩展名如何即使它们具有文件扩展名也是如此。 在下一个屏幕图像中将对此进行演示。 上一张图像演示了将扩展目录中的JAR文件重命名为没有任何文件扩展名不会阻止类加载器加载该JAR的类。 换句话说类加载机制基于文件类型而不是文件名或扩展名来加载指定扩展目录中的所有JAR文件。 正如Optional Packages Overview总结的那样“对于任何特定的JAR文件本身或其中包含的使其成为已安装的可选软件包的类没有什么特别的。 由于它位于jre / lib / ext中因此它是一个已安装的可选软件包。” 在扩展目录内的JAR中放置太多类定义会带来一些风险和弊端 。 例如当人们看到在类路径上显式指定的类具有所涉及的方法时为什么会发生NoSuchMethodError可能令人发狂 。 我之前已经写过 NoSuchMethodError的许多潜在原因之一但是扩展目录中JAR文件中遗忘的过时和过时的类定义是另一个潜在原因。 接下来演示。 接下来的两个代码清单显示Main.java和HelloWorld.java修订版。 特别是 HelloWorld具有Main新版本调用的全新方法。 在这种情况下当我运行Main时我将把新编译的HelloWorld.class文件保留在同一目录中以证明扩展目录中JAR中的HelloWorld.class的旧版本优先于新版本。当前目录中的热点HelloWorld.class 。 修改后的Hello World.java新方法 public class HelloWorld {Overridepublic String toString(){return Hello, World!;}public String directedHello(final String name){return Hello, name;} }修改后的Main.java import static java.lang.System.out;public class Main {public static void main(final String[] arguments){final HelloWorld helloWorld new HelloWorld();out.println(helloWorld);out.println(helloWorld.directedHello(Dustin));} } 上一张图片展示了extensions目录中现在过时的HelloWorld类定义优先于同一目录中的HelloWorld新类定义。 即使当我在类路径上指定当前目录时扩展目录中的旧版本也具有优先权。 这在下一个屏幕快照中显示该快照还显示扩展目录中“隐藏”较新JAR及其类的较新方法的JAR甚至都没有以.jar扩展名命名。 刚刚演示的示例甚至都不是在指定的扩展目录或多个目录中忘记JAR可能导致的最困难的情况。 在那个例子中至少我有一个NoSuchMethodError来提醒我一个问题。 当旧类定义具有相同的方法签名但具有过时的方法实现时可能存在调试甚至可能更加困难的情况。 在这种情况下可能没有任何错误异常或可抛出但是应用程序逻辑将无法正常工作或无法正常工作。 以前的功能可能在代码库中存在一段时间甚至在被认为是问题之前尤其是在缺少单元测试和其他测试的情况下。 使用extensions目录可以使开发人员更轻松因为存在于extensions目录或多个目录中的JAR文件中的类可用于与extensions目录关联的JRE中的所有应用程序如果使用操作系统还可以与主机上的所有JRE关联使用。基于主机的扩展目录。 但是过于自由地使用目录存在一定的风险。 很容易忘记该目录中JAR中的过时类定义正在阻止类加载器加载类定义的较新的看似明显的版本。 当发生这种情况时使开发人员的生活变得更轻松的扩展可选软件包机制现在变得更加困难。 Elliotte Rusty Harold提供了有关使用扩展可选软件包机制的警告“虽然这看起来很方便但这也是一个长期错误……迟早可能不久您将加载错误版本的类从您根本没有想过的地方开始就浪费了很多时间进行调试。” Java教程还建议您谨慎我强调了这一点“由于此机制扩展了平台的核心API因此应谨慎使用它 。 尽管它也可能适用于站点范围的接口但最通常用于标准化接口如Java Community Process定义的接口。” 尽管扩展可选软件包机制与类路径机制相似并且两者均用作类加载的一部分但要注意两者之间的差异。 特别是请务必记住将加载位于引用为扩展目录的目录中的所有JAR文件即使它们没有.jar文件扩展名。 重命名这些JAR甚至更改其文件扩展名都不足以使类加载忽略它们。 另一方面对于classpath重命名JAR足以防止在classpath显式指定单个JAR文件时进行加载并且即使classpath使用通配符*来指定所有JAR更改文件扩展名通常也足以防止加载目录。 在某些情况下扩展可选软件包机制是适当的选择但这些情况似乎很少见。 在处理无法解释的NoSuchMethodError时请记住扩展机制可选软件包这一点也很重要以便人们可以检查出该违规者是否住在该目录中。 翻译自: https://www.javacodegeeks.com/2014/10/java-extension-mechanism-loads-all-jars.html
http://www.zqtcl.cn/news/398836/

相关文章:

  • 平面设计素材网站排名巩义网站建设方案表
  • 延庆网站制作搜索引擎优化的基础是什么
  • 管理手机网站商城网站备案流程
  • 怀化买房网站网站广告js代码添加
  • 做网站 帮别人卖服务器wordpress主题多页面
  • 代理游戏网站潍坊市建设工程管理处网站
  • 大同推广型网站建设网站规划建设与管理维护第二版答案
  • 做网站需要代码吗户外媒体网站建设免费
  • 做什么网站国外做图标网站
  • 网站建设技术部职责门户网站工作总结
  • 用个人电脑做服务器建网站急切网头像在线制作图片
  • 企业网站制作教程浙江省住房和城乡建设厅网站
  • 一个网络空间如何做两个网站哪个网站兼职做设计比较好
  • jquery代码做的网站免费搭建网站模板
  • 铁路建设监理协会官方网站邯郸市网
  • 马鞍山集团网站建设客流分析系统公司
  • 淘客网站怎么做啊抖音怎么挂小程序赚钱
  • 在哪里申请网站域名美妆销售网站开发的目的
  • 网站自动跳转施秉网站建设
  • 聊城做网站的公司咨询学校网站模板 dedecms
  • 网站域名查询赣州网站设计有哪些
  • 网站设计做多宽150m网站空间流量大吗
  • 制作php网站用什么软件东莞东坑网站建设
  • 怎样做网站外部样式wordpress爱找主题
  • 自己搭建服务器做网站要多久问答网站如何优化
  • 网站用的服务器小程序拉新项目
  • 建设银行 访问的网站出错珠宝类网站模板
  • 网站百度关键词排名软件xampp里wordpress安装教程
  • 杭州网站设计建立企业网站专业做电脑系统下载网站好
  • 哈尔滨建设网站成本网站建设无广告