很多人在初学Java的时候,都要配置环境变量。在配置CLASSPATH的时候,都会加上一个当前目录.,还有两个jar:dt.jar和tools.jar。其实好多人都不了解这两个jar的作用,尤其是dt.jar。网上的大部分解释是这样的:dt.jar是关于运行环境的类库,主要是swing的包;tools.jar是关于一些工具的类库。对于后者我赞同,tools.jar中主要是jdk工具,包括javac,java,javap,javadoc等。javac,java,javadoc,很多都熟悉。javap,是java printer的缩写,是jdk自带的一个反编译工具。不过把dt.jar解释成关于运行环境的类库,我是百思不得其解。所谓的运行环境是什么?难道是JRE?本文也希望高手可以给我一个解释。下面是我自己整理的关于dt.jar的资料:

首先看一下SUN对于dt.jar的定义:Also includes dt.jar, the DesignTime archive of BeanInfo files that tell interactive development environments (IDE's) how to display the Java components and how to let the developer customize them for the application。中文翻译过来就是:dt.jar是BeanInfo文件的DesignTime归档,BeanInfo文件用来告诉集成开发环境(IDE)如何显示Java组件还有如何让开发人员根据应用程序自定义它们。这段文字中提到了几个关键字:DesignTime,BeanInfo,IDE,Java components。其实dt.jar就是DesignTime Archive的缩写。那么何为DesignTime。

何为DesignTime?翻译过来就是设计时。其实了解JavaBean的人都知道design time和runtime(运行时)这两个术语的含义。设计时(DesignTIme)是指在开发环境中通过添加控件,设置控件或窗体属性等方法,建立应用程序的时间。与此相对应的运行时(RunTIme)是指可以象用户那样与应用程序交互作用的时间。那么现在再理解一下上面的翻译,其实dt.jar包含了swing控件中的BeanInfo,而IDE的GUI Designer需要这些信息。那让我们看一下dt.jar中到底有什么?下面是一张dt.jar下面的内容截图:

从上面的截图可以看出,dt.jar中全部是Swing组件的BeanInfo。那么到底什么是BeanInfo呢?

何为BeanInfo?JavaBean和BeanInfo有很大的关系。Sun所制定的JavaBean规范,很大程度上是为IDE准备的——它让IDE能够以可视化的方式设置JavaBean的属性。如果在IDE中开发一个可视化应用程序,我们需要通过属性设置的方式对组成应用的各种组件进行定制,IDE通过属性编辑器让开发人员使用可视化的方式设置组件的属性。一般的IDE都支持JavaBean规范所定义的属性编辑器,当组件开发商发布一个组件时,它往往将组件对应的属性编辑器捆绑发行,这样开发者就可以在IDE环境下方便地利用属性编辑器对组件进行定制工作。JavaBean规范通过java.beans.PropertyEditor定义了设置JavaBean属性的方法,通过BeanInfo描述了JavaBean哪些属性是可定制的,此外还描述了可定制属性与PropertyEditor的对应关系。BeanInfo与JavaBean之间的对应关系,通过两者之间规范的命名确立:对应JavaBean的BeanInfo采用如下的命名规范:<Bean>BeanInfo。当JavaBean连同其属性编辑器相同的组件注册到IDE中后,当在开发界面中对JavaBean进行定制时,IDE就会根据JavaBean规范找到对应的BeanInfo,再根据BeanInfo中的描述信息找到JavaBean属性描述(是否开放、使用哪个属性编辑器),进而为JavaBean生成特定开发编辑界面。

哈哈。现在可以理解dt.jar了吧。其实里面主要是swing组件的BeanInfo。IDE根据这些BeanInfo显示这些组件以及开发人员如何定制他们。

转载于:https://blog.51cto.com/focus007/623184

(转载)你所知晓的dt.jar相关推荐

  1. 安装JAVA SE/jdk后,未发现jdk/lib的tools.jar和dt.jar文件

    更新后,版本带来的变化,模块化后导致不需要或者说将toos.jar和dt.jar文件兼容到其他部分,jdk的lib下面不会再出现这俩文件: (摘:版本更新到9.0后的变化)JDK 9的核心变化就是引入 ...

  2. [Kafka][错误: 找不到或无法加载主类 Files\Java\jdk1.8.0_101\lib\dt.jar;C:\Program]

    **背景:**最近需要使用kafka服务器,之前只安装了JRE,通过命令能够正常启动kafka服务器.后来卸载了JRE,重新安装了一个JDK(含JRE),启动时kafka时会报错. **现象:**cm ...

  3. JDK安装后 没有tools.jar 和dt.jar包的解决办法

    点击打开原文链接 今天花了几个小时弄JDK,安装后发现jdk\lib中没有tools.jar 和 dt.jar包,网上搜罗了很多解决办法,都没有解决问题.最后看到一个本质的解决方法,出现这个问题的原因 ...

  4. Java虚拟机:关于JDK8到JDK9-10的一点小变化(tools.jar、dt.jar)

    关于JDK8到JDK9-10的一点小变化 JDK在每一次版本升级中,或多或少都会有一些比较重要的变化,或许在你使用的过程中,你就很有可能遇到. 一.Removed or Changed APIs JD ...

  5. [转载]你所不了解的DevOps

    DevOps开发运维训练营 一旦建立了创新的文化,即使那些并非科学家或者工程师的人--诗人.演员.记者--也能以团体的形式,接受科学文化的意义.他们信奉创新文化的概念.他们以促进这种文化的方式投票.他 ...

  6. Ubuntu 14.04.1 配置 Android 源码开发环境(jdk版本切换)(转载)

    转自:http://www.cnblogs.com/ren-gh/p/4248407.html # Ubuntu 14.04.1 1.更新源: sudo apt-get update 安装vim工具: ...

  7. Apache+tomcat+mod_jk+centos6.2负载均衡集群配置--转载

    转载地址:http://blog.163.com/chenhui_java/blog/static/17267249420128101191860/ 注: 由于长期受转载毒害,所以本人日志均是原创:其 ...

  8. CentOS下安装JDK7 转载

    转载地址:http://www.cnblogs.com/rilley/archive/2012/02/02/2335395.html CentOS下安装JDK7 下载地址:http://www.ora ...

  9. Inside ASP.NET 2.0 – Controls Model(转载)

    读者基础需求:了解ASP.NET 控件设计技巧參考书目:深入剖析ASP.NET 组件设计(碁峯). Developing ASP.NET Server Controls And Components( ...

最新文章

  1. JAVA学习日记DAY1
  2. python -os、sys
  3. ITK:计算PCA形状模型
  4. 【Python学习】 - sklearn学习 - 交叉验证中的常用函数
  5. php csrf攻击 xss区别,XSS与CSRF攻击及防御方法
  6. 理论基础 —— 排序 —— 逆序对问题
  7. 程序员一般都浏览这些网站,不仅仅提升编程水平!
  8. 【短文本聚类】TextCluster:短文本聚类预处理模块 Short text cluster
  9. 对 NGUI 子节点的位置的一点理解
  10. zen服务器芯片,Intel颤抖!AMD 32核心终极版Zen亮相:媲美人脑
  11. 97. ExtJS之EditorGridPanel afteredit属性
  12. 快递鸟电子面单对接文档(顺丰、ESM、圆通通用)
  13. Python制作局域网双人聊天软件(一)
  14. 阿里云盘 Mac客户端(附福利码)
  15. xp电脑系统时间同步服务器不可用,winxp系统不自动设置无法同步internet时间的解决方案...
  16. Http Status 500
  17. vpa函数python_python 调用百度接口 做人脸识别
  18. 华泰单因子测试之估值类因子(回归法)
  19. C语言|鼠标点击开始
  20. NLP-基础任务-中文分词算法(1)-基于词典: 机械分词(词典字符串匹配):前向最大匹配、后向最大匹配、双向最大匹配【OOV:基于现有词典,不能进行新词发现处理】

热门文章

  1. PageOffice,word常用接口对象--Paragraph类
  2. 移动端框架如雨后春笋,你该如何选择?
  3. spring-boot2
  4. 小知识一、让Swift继续用OC#warning效果
  5. npm安装bower时报错 我已解决
  6. javascript高级程序设计(第3版)之《script元素》
  7. Linux Sed命令具体解释+怎样替换换行符quot;\nquot;(非常多面试问道)
  8. 数组中只出现一次的数字
  9. rotate.js实现图片旋转 (chrome,IE,firefox都可以实现)
  10. xamarin的破解安装