当前位置: 首页 > 面试题库 >

从任意网址动态加载jar

屠杰
2023-03-14
问题内容

最近,AWS Lambda添加了对Java的支持。
尽管这是个好消息,但它对代码的大小(压缩的50MB)造成了相当严格的限制。尽管这对于其他语言可能很好,但是Java uberjars可以轻松击败它。

因此,我一直在考虑使用一个小型加载程序在运行时从其他地方插入一个较大的jar的想法。(暂时不要考虑这是个好主意)。

从我的初步研究看来,定制类加载器是必经之路。对于AWS Lambda来说,这可能是不可行的。

还有其他创意方法可以实现吗?


问题答案:

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

类加载器甚至不必自定义。正如本文所展示的,它只需要几行代码即可工作。

如果您将加载的jar文件为您的应用程序提供了特定的服务,也请考虑使用方便ServiceLoader。它的工作原理相同(实际上,您可以直接将其传递给a
ClassLoader),但是使从动态加载的库实例化对象透明化。否则,您将需要使用以下方法使您的手变脏:

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


 类似资料:
  • 问题内容: 我正在为Android编写一个小相框应用程序,它使用opengl作为部分UI。这部分需要从flickr获取图像并将其加载到纹理中。我下面的代码大多数时候都可以使用,但是在从连接获取输入流和对流进行位图解码的位之间,它具有Thread.sleep()缺点: 我如何使用sleep()方法来支持具有逻辑意义的内容? 我正在不在模拟器中的三星银河标签上进行测试 问题答案: 这似乎不太理想,但是

  • 问题内容: 简短的问题:我需要使用Wicket将从数据库中提取的动态图像转换为URL,而无需将组件添加到显示页面(例如,使用NonCachingImage)。 完美的解决方案(我已在其他Framework中实现)只是创建一个页面,该页面将图像ID作为url参数并将图像呈现到响应流。不幸的是,Wicket的Page类扩展了MarkupContainer,它围绕MarkupStreams展开。Mark

  • 问题内容: 我正在尝试为我的网站创建页面主题功能。我想使用单独的CSS文件在页面上动态加载相应的主题。 我正在使用此代码: 效果很好,但是如果CSS文件未加载,它不会返回任何信息。 加载时,有什么方法可以捕捉吗?也许通过使用ajax? 问题答案: 加载CSS文件(或其任何其他更改)时,Internet Explorer会触发一个事件。其他浏览器不会触发任何事件,因此您将必须手动检查样式表是否已加载

  •  说明 调用方法: $.f2e.util.getScript(url,cache,fn); 函数说明: 加载js,并提供相关回调 参数说明: 参数名 类型 说明 备注 url string 地址 无 cache boolean 缓存 无 fn function 回调函数 无 脚本 <script> $.f2e.util.getScript(url,true,function(){

  • 正如你在上面看到的,我正试图从https://play . Google . com/store/apps/category/GAME _ ACTION/collection/top selling _ free中抓取一个单词列表 谷歌Play商店页面加载更多的元素,每次你滚动到页面的底部。 我的程序将抓取显示的前40个元素,但由于j汤不会加载动态加载的网页的其余部分,因此我无法抓取前40个元素之

  • 我试图从TripAdvisor网站上获取评论。由于网站中的大多数图像都是动态加载的,所以我使用splashjavascript呈现服务来生成页面。 问题是有些图像已加载,有些未加载。 以下是我要爬网的评论的URL:https://www.tripadvisor.com.sg/ShowUserReviews-g294265-d1770798-r446535418-Marina_Bay_Sands-S