“运行时环境”和“软件框架”的含义?
Posted
技术标签:
【中文标题】“运行时环境”和“软件框架”的含义?【英文标题】:Meaning of "Runtime Environment" and of "Software framework"? 【发布时间】:2011-07-19 08:59:13 【问题描述】:我听说过几件事,引自***:
"Java Runtime Environment",
一个 JVM 与一个集合一起分布 的标准类库 实现 Java 应用程序 编程接口(API)。 适当的 API 捆绑在一起形成 Java 运行时环境 (JRE)。
"Adobe Integrated Runtime"
Adobe Integrated Runtime,也称为 作为 Adobe AIR,是一个跨平台的 Adobe 开发的运行时环境 构建富互联网的系统 使用 Adobe Flash 的应用程序 (RIA), Adobe Flex、html 和 Ajax,可以 作为桌面应用程序运行。
".NET Framework"
.NET 框架(发音为点 net) 是一个软件框架 微软视窗操作系统。 它包括一个大型图书馆,它 支持多种编程语言 允许语言互操作性 (每种语言都可以使用编写的代码 其他语言)。 .NET 库是 可用于所有编程 .NET 支持的语言。
如上所述,如果我理解正确的话,前两个似乎与“运行时环境”有关,但没有相关的***解释什么是“运行时环境”。
第三个据说是“软件框架”,a Wikipedia article为:
软件框架是一种抽象 其中提供通用代码的通用代码 功能可以有选择地 被用户覆盖或专门化 代码,从而提供特定的 功能。框架是一个 软件库的特例 它们是可重用的抽象 代码包装在一个定义明确的 应用程序接口 (API),但它们包含一些密钥 区别特征 它们来自普通库。
所以我的问题是:
-
是“运行时环境”和
“软件框架”同理
事物?如果不是,它们有何不同,
它们是否属于一些常见的
类别?
他们都在编程吗
可以使用的库/API
程序员自己开发
软件?
这三个例子经常
安装一些时需要
软件。他们是否属于
virtual machine 的概念?如果
不是,它们属于什么类别
到?该类别有何不同
来自虚拟机?
感谢和问候!
PS:我不知道这个帖子更适合超级用户还是***,因为安装一些软件时经常需要这三个示例,而且它们似乎也提供API面向软件开发人员。
【问题讨论】:
这非常适合***。 【参考方案1】:没有。运行时环境基本上是在机器之上运行的虚拟机——提供机器抽象。它通常比图书馆低。框架可以包含运行时环境,但通常与库相关联。
Java、AIR 和 .NET(在本例中为公共语言运行时)在操作系统之上运行的特定字节码中都有自己的运行时。它允许代码非常便携,无需重新编译即可这样做。
库和 API 用于制作新程序。运行时环境是程序运行的地方。
运行时环境确实与虚拟机的概念相吻合,尽管它不像 VMWare 或其他方面那么复杂。他们都有共同的目标,即将底层系统抽象到其他软件可以在其上运行的程度。
【讨论】:
"JRE 是容器,JVM 是内容。JRE 为 JVM 提供环境,使其可以在任何平台上运行。"来自programmingbulls.com/difference-between-jre-and-jvm 所以运行时环境不一定是虚拟机,正如文章所说,在 Java 中,JRE 包含 JVM,它们不是一回事。【参考方案2】:“运行时环境”和“软件框架”是一回事吗?如果不是,它们有何不同,它们是否属于某个共同的类别?
不,不是真的。 “运行时环境”通常是指实际执行代码本身的核心技术。在 Java 中,这将是 JVM - 在 .NET 中,CLR。 “框架”通常是指默认分发的一套库。
它们都是程序员可以用来开发自己的软件的编程库/API吗?
这更多的是“框架”——“框架”提供了默认可用的 API。
安装某些软件时,经常需要这三个示例。它们属于虚拟机的概念吗?如果不是,它们属于什么类别?该类别与虚拟机有何不同?
虚拟机是“运行时环境”的一种形式 - 这是 Java 和 C# 用于其运行时环境的一种形式。
由于您通常将这两个东西安装在一起,因此出现了混淆 - 因为没有一些基本库(框架),运行时环境几乎没有用处,而没有运行时环境,框架什么也不做(因为后者需要执行基于代码的在框架上)。
【讨论】:
谢谢!我刚刚在我的帖子中添加了我的问题的第 3 部分。感谢您检查。以上是关于“运行时环境”和“软件框架”的含义?的主要内容,如果未能解决你的问题,请参考以下文章