C# .jar和.dll文件之间的差异

C# .jar和.dll文件之间的差异,c#,java,C#,Java,这些天我在学习Java,我花了很多时间在.NET上,所以当我想导出或导入库时,它们通常是.dll格式的,在.NET环境中称为程序集,它们被编译成IL,并且它们可以拥有图像、XML、音频等资源 我想知道Java中也有同样的过程。我读过一些文件,但它们实际上让我有点困惑,为了澄清问题,我需要你们的帮助 问题: .NET程序集与Java.jar是一样的吗 .dll包含已编译的IL代码,.jar包含已编译的.class/字节代码文件 他们说资源,我们这里说的是什么资源??图像、.txt文件等,还是所

这些天我在学习Java,我花了很多时间在.NET上,所以当我想导出或导入库时,它们通常是.dll格式的,在.NET环境中称为程序集,它们被编译成IL,并且它们可以拥有图像、XML、音频等资源

我想知道Java中也有同样的过程。我读过一些文件,但它们实际上让我有点困惑,为了澄清问题,我需要你们的帮助

问题:

  • .NET程序集与Java.jar是一样的吗

  • .dll包含已编译的IL代码,.jar包含已编译的.class/字节代码文件

  • 他们说资源,我们这里说的是什么资源??图像、.txt文件等,还是所有这些文件都可能

  • 我检查了AWS(AmazonWebServiceAPI for java),看到了三个.jar文件,它们是

  • aws-java-sdk-1.1.1.jar
  • aws-java-sdk-1.1.1-javadoc.jar
  • aws-java-sdk-1.1.1-sources.jar
  • 它们包含.class文件——html格式的java文档和尚未编译的.java文件。然后我意识到.jar不仅仅包括编译过的字节码(.class)和其他东西

  • 当我想要导入java库时,是否总是需要导入.jar文件
  • 当我想导出自己的java库时,我是否需要导出到.jar文件中

  • 提前感谢您的帮助。

    回答此特定问题

  • aws-java-sdk-1.1.1.jar
  • aws-java-sdk-1.1.1-javadoc.jar
  • aws-java-sdk-1.1.1-sources.jar
  • 1)是编译器java归档文件(jar),在.NET中称为DLL。2)是javadoc。java类的HTML文档(见1)以及方法描述。3)是1)的源代码(java文件)

  • 当我想导入java库时,是否总是需要 导入.jar文件
  • 当我想导出自己的java库时,我需要 导出到.jar文件中
  • 对于1)如果需要使用在jar文件中找到的类,则需要将该jar导入到项目中

    因为你不需要。您可以将依赖项jar捆绑到库中,或者将每个jar打包到它们自己的jar中,然后将它们导入到项目中

  • NET程序集和java.jar是一样的吗回答:
  • .dll包含编译的IL代码,.jar包含编译的.class/字节码文件? 回答:.jar文件是java资源、类、图像/图标等的存档文件,对于应用程序来说是必要的,就像在.DLL中一样。类文件包含编译java源代码(称为java字节码)
  • 我可以回答部分问题:-)

    据我所知,
    jar
    只是一个“Java存档”文件。它可以包含您想要的任何内容,但最常用于分发库的二进制版本。它还可以用于分发可执行文件——双击JAR文件将启动应用程序,如果它是这样打包的

    因此,可能很难判断特定的
    jar
    文件的用途。例如,什么是
    aws-java-sdk-1.1.1-sources.jar
    ?。它是自动安装程序吗?压缩代码存档?没有阅读文档,这是任何人的猜测



    Edit:举个例子,我刚刚下载了
    jar
    文件,假设它是库的二进制构建。但事实上,它包含安装程序应用程序。

    是一个.NET程序集还是一个Java.jar?

    他们扮演同样的角色,是的

    .dll包含已编译的IL代码,.jar包含已编译的.class/字节码文件?

    对。虽然jar只是zip文件(您可以在自己喜欢的zip工具中打开它们),但它们实际上可以包含任何内容

    他们说资源,我们这里说的是什么资源?图像、.txt文件等,或者所有这些都是可能的?

    JAR中允许任何文件类型。您的Java代码可以通过访问jar中文件的内容,例如,或。显然,JAR中的类文件是经过特殊处理的(作为字节码)

    我检查了AWS(Amazon Web Service API for Java),看到了三个.jar文件,它们是:AWS-Java-sdk-1.1.1.jar、AWS-Java-sdk-1.1.1-javadoc.jar、AWS-Java-sdk-1.1.1-sources.jar

    上述包装相当普遍。有时人们使用.jar作为.zip的替代文件扩展名。我发现这种做法令人困惑,但并不少见,亚马逊在这种情况下就这样做了。我认为随着Maven的推出,这种做法变得更加普遍,Maven将引用源代码存储在名为.jar的文件中

    aws-java-sdk-1.1.1.jar-这是编译和执行所需的唯一文件。它包含库运行所需的类(.class文件)和资源

    aws-java-sdk-1.1.1-sources.jar-这只是一个zip文件,其中包含库的源代码(.java文件)。它不是编译或执行所必需的。它可以帮助您解决使用库时可能遇到的问题。您可以解压缩此文件并从硬盘读取源代码。但是,您的IDE可能可以通过创建一个到主库JAR的“源附件”来直接利用这个文件。通过在IDE中设置此库->源关联,当您在库类上使用IDE的“转到定义”功能时,IDE将能够向您显示库的源代码

    aws-java-sdk-1.1.1-javadoc.jar-这只是一个包含库的javadoc的zip文件。同样,编译或执行也不需要它。JavaDoc只是HTML,因此您可以解压缩此文件并直接从硬盘读取JavaDoc HTML。