有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java外部库的工作原理

我只是想了解一下外部库在java中是如何工作的。我到处都看不清楚

通常,我理解使用外部库涉及到设置所需类、JAR等的类路径

我的问题是(如果我将我的项目构建到一个JAR中),如果它在另一台计算机上使用,它将如何访问库?外部JAR会包含在我的JAR文件中吗?否则,它将如何访问外部JAR

例如,bukkit插件如何工作,插件如何知道在哪里引用bukkit。jar文件


共 (2) 个答案

  1. # 1 楼答案

    .Jar文件只不过是额外的代码行或完整的程序。如果要包含它们,必须将它们添加到生成路径和/或项目中。一旦添加了它们,您就可以引用它们并使用它们

    如果您要创建一个.Jar文件或库,那么您使用的所有内容都将包括在内。添加库时,它将添加到项目中,因此,发布项目时,它将包含在程序中

  2. # 2 楼答案

    每个jar都有一个清单文件。在这里,您可以参考罐外的其他罐。这些将包含在类路径中You can see how to do that here.例如,您可以将其放入清单文件中:

    Class-Path: jar1-name jar2-name directory-name/jar3-name
    

    正如您在这里看到的,它使用相对路径。如果它们是绝对路径,它们会说类似C:\...\jar1-name。使用相对路径意味着,只要jar与主jar保持在同一位置relative,代码就会正确运行

    或者,您可以提供一个脚本来运行java命令,并包含类路径上所需的所有JAR

    另一种选择是,你可以使用一种叫做uberjar的东西,它将所有这些东西放在一个罐子里,然后你可以分发它

    另外,您可以使用jar classloader从嵌入式JAR加载类


    为了教育起见,您可能想查看my answer here,它描述了许多分发java应用程序的方法