如何解决如何在jar文件上远程执行方法
| 我有一个应用程序,其目的是在分布于文件系统中的许多不同jar文件中的同一类中调用同一特定方法,并接收结果。因此,可以肯定的是,jar文件中将存在某个类和方法。 我知道每个jar文件位于何处。对于我来说,通过反射实例化类并以这种方式调用该方法非常容易。 我的问题是我有很多这些jar文件。而且,如果我使用上述方法调用每个jar,则我担心我的应用程序的内存消耗会急剧增加,因为我将不得不为每个调用加载整个jar文件。 除了反射之外,还有什么方法可以调用这些jar文件?系统调用无法正常工作,因为我需要获取一个值。 非常感激...解决方法
您可能会遇到烫发空间的问题,但是可以用
-XX:MaxPermSize=
增加
参数。
确保为每个JAR文件使用单独的URLClassLoader,并且不要抓住它们,以便它们可以获取GCd。
通过新的URLClassLoader加载JAR文件,然后使用Class.forName()进行加载。
祝好运!
,我会做类似这样的伪代码:
foreach jf : myJarFiles
jcl = new JarClassLoader(jf);
Class.forName(myClassName);
m = MyClass.getMethod(...);
m.invoke(...);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。