Java JAR文件是否类似于.Net程序集?

Adr*_*n K 12 .net java architecture assemblies jar

我熟悉.Net以及哪些程序集 - 但遗憾的是我的Java知识并不那么强大.

我知道Java和.Net是不同的"世界"(可能比如苹果与梨的比较)但是JAR和.Net Assemblies大致是等价的概念吗?

编辑:根据初始响应进行更新

我解释这个的方式是,他们有相似之处:

  • 两者都可以包含资源和元数据.

但是有一些核心差异:

  • 一个.Net程序集编译成JAR不是.
  • 制作Java应用程序不需要JAR文件; .Net应用程序需要.Net程序集.

[这不是宗教战争的时候 - 我想知道我对.Net程序集的理解是否/我有多少可以应用于了解Java(也许这甚至可以帮助Java人员走另一条路) ).]

Jam*_*ran 8

存在许多技术差异,但它们在大多数时间都没有什么影响,所以基本上,是的,它们是相同的概念.


Mar*_*ers 5

我会说不,它们不是同一个概念,注意到JAR可以装配一样使用.如果你真的想要了解JAR文件,只需将其视为ZIP文件即可.这才是真的.

通常,该存档包含已编译的类文件.通常,这些类文件以与类的包相对应的层级方式排列.

但是JAR文件经常包含其他内容,例如消息包,图像甚至源文件.我鼓励你用你选择的解压缩客户端打开一个并查看内部.

然而,JAR格式是打包Java库或应用程序的可分发的最常见方式,因此它们非常相似.

从语言的角度来看,JAR文件绝不是创建Java应用程序或库所必需的,也不是说它们是Java固有的,但是标准库和JDK都支持处理JAR文件.


Bob*_*Bob 5

在一个层面上,它们在概念上是相似的(包中的字节码块)。然而,它们的实现是非常不同的。

JAR 文件实际上是一个 ZIP 文件,其中包含一些元数据和所有 Java .class 文件(是的,您实际上可以将其作为 ZIP 文件打开并查看内部),以及其中打包的任何其他内容(资源等)。

.NET 程序集实际上是一个有效的 Win32 PE 文件,在某种程度上可以这样对待。.NET .exe 文件实际上开始作为加载框架的本机代码执行,然后加载字节码。“执行” JAR 文件需要通过 .bat 文件或文件关联启动 Java 运行时,然后单独加载 JAR 文件。