java外部库的工作原理
我只是想了解一下外部库在java中是如何工作的。我到处都看不清楚
通常,我理解使用外部库涉及到设置所需类、JAR等的类路径
我的问题是(如果我将我的项目构建到一个JAR中),如果它在另一台计算机上使用,它将如何访问库?外部JAR会包含在我的JAR文件中吗?否则,它将如何访问外部JAR
例如,bukkit插件如何工作,插件如何知道在哪里引用bukkit。jar文件
你可以在下面搜索框中键入要查询的问题!
我只是想了解一下外部库在java中是如何工作的。我到处都看不清楚
通常,我理解使用外部库涉及到设置所需类、JAR等的类路径
我的问题是(如果我将我的项目构建到一个JAR中),如果它在另一台计算机上使用,它将如何访问库?外部JAR会包含在我的JAR文件中吗?否则,它将如何访问外部JAR
例如,bukkit插件如何工作,插件如何知道在哪里引用bukkit。jar文件
# 1 楼答案
.Jar
文件只不过是额外的代码行或完整的程序。如果要包含它们,必须将它们添加到生成路径和/或项目中。一旦添加了它们,您就可以引用它们并使用它们如果您要创建一个
.Jar
文件或库,那么您使用的所有内容都将包括在内。添加库时,它将添加到项目中,因此,发布项目时,它将包含在程序中# 2 楼答案
每个jar都有一个清单文件。在这里,您可以参考罐外的其他罐。这些将包含在类路径中You can see how to do that here.例如,您可以将其放入清单文件中:
正如您在这里看到的,它使用相对路径。如果它们是绝对路径,它们会说类似
C:\...\jar1-name
。使用相对路径意味着,只要jar与主jar保持在同一位置relative,代码就会正确运行或者,您可以提供一个脚本来运行
java
命令,并包含类路径上所需的所有JAR另一种选择是,你可以使用一种叫做uberjar的东西,它将所有这些东西放在一个罐子里,然后你可以分发它
另外,您可以使用jar classloader从嵌入式JAR加载类
为了教育起见,您可能想查看my answer here,它描述了许多分发java应用程序的方法