我只是想了解外部库如何在java中工作。我到处都看不清楚。
通常,我理解使用外部库涉及设置所需类,JAR等的类路径。
我的问题是如果(如果我将项目构建到JAR中)是否可以访问该库(如果它是在另一台计算机上使用的话)?外部JAR是否会包含在MY JAR文件中?否则,它将如何访问外部JAR?
示例将是如何使用bukkit插件,插件如何知道在哪里引用bukkit.jar文件?
答案 0 :(得分:2)
每个jar都有一个清单文件。在那里你可以参考罐子外面的其他罐子。这些将包含在您的类路径中。 You can see how to do that here.例如,您可以将其放入清单文件中:
Class-Path: jar1-name jar2-name directory-name/jar3-name
正如您在此处所见,它使用相对路径。如果它们是绝对路径,它们会说C:\...\jar1-name
之类的东西。使用相对路径意味着,只要罐子保持在主罐子的相同位置 relative ,这段代码就能正确运行。
或者,您可以提供运行java
命令的脚本,并在类路径中包含您需要的所有jar。
另一种选择,您可以使用名为uberjar的东西,将所有这些东西放在一个罐子中然后你可以分发它。
另一种选择,您可以使用jar classloader来加载来自嵌入式jar的类。
出于教育的考虑,您可能需要查看my answer here,其中介绍了许多分发Java应用程序的方法。
答案 1 :(得分:0)
.Jar
文件不再是额外的代码行或完整的程序。如果要包含它们,则必须将它们添加到构建路径和/或项目中。添加后,您可以引用它们并使用它们。
如果您要创建.Jar
文件或库,则会包含您使用的所有内容。添加库时,它会添加到项目中,因此,当您释放项目时,它将包含在您的程序中。