gpt4 book ai didi

java - 从任意 url 动态加载 jar

转载 作者:行者123 更新时间:2023-11-30 03:22:20 33 4
gpt4 key购买 nike

最近 AWS Lambda 添加了对 Java 的支持。
虽然这是个好消息,但它对代码大小(压缩后 50MB)有相当严格的限制。虽然这对于其他语言来说可能没问题,但 Java uberjars 可以轻松击败它。

所以我一直在考虑拥有一个小型加载器,在运行时从其他地方拉入一个更大的 jar 。 (暂时搁置这是否是个好主意)。

从我最初的研究来看,自定义类加载器是正确的选择。这对于 AWS Lambda 来说可能是不行的。

还有其他创造性的方式可以实现这一目标吗?

最佳答案

我认为 ClassLoader,更准确地说是 URLClassLoader,是可行的方法,而且我不知道有任何其他解决方案可以在运行时加载代码。

类加载器甚至不必是自定义的。它只需几行代码即可工作,如 this post 中所示。 .

如果您要加载的 jar 文件满足您的应用程序的特定服务,还可以考虑方便的 ServiceLoader。它的工作原理相同(事实上,您可以直接向其传递 ClassLoader),但使从动态加载库实例化对象变得透明。否则,你就得亲自动手,使用如下的东西:

Object main = loader.loadClass("Main", true).newInstance();

关于java - 从任意 url 动态加载 jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31042312/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com