【发布时间】:2014-03-30 14:56:39
【问题描述】:
尝试在代码中执行特定 jar 文件时遇到问题。我的目标是创建 GUI 应用程序(向导),用户可以在其中选择各种 xml 文件,选择要执行的 jar 文件并为其提供输入 xml。
要执行 jar,我使用以下代码:
1: URL[] urls = fillUrls();
2: loader = new URLClassLoader(urls);
3: Class<?> cls = loader.loadClass(className);
4: Method execute = cls.getDeclaredMethod(methodName, Properties.class,
StringBuffer.class, StringBuffer.class, IContext.class);
// method name is declared as:
// private final String methodName = "execute";
fillUrls 方法返回已执行 jar 和已执行 jar 运行所需的其他库的 URL。如果省略,第 3 行将抛出异常。当方法到达第 4 行时,抛出 java.lang.NoSuchMethodException。
奇怪的是,jar 中执行的类实现了一个接口,所以不可能没有这样的方法。为了让它更有趣,我用于测试的 jar 文件完美运行,其他人提供的 jar 不...
那么可能是我的代码有问题,或者是如何导出 jar 文件的问题?有什么方法可以证明吗?导出的 jar 来自 maven2 项目。
【问题讨论】:
标签: java jar maven-2 classloader