gpt4 book ai didi

java - 从自己的 Jar 项目调用 Jar 库?

转载 作者:行者123 更新时间:2023-11-29 06:45:08 25 4
gpt4 key购买 nike

我用 java 编写了一个应用程序并将其转换为执行 jar 文件,我的项目依赖于“jxl.jar”。有什么办法可以将“jxl.jar”复制到我的 jar 文件中,然后调用它。

我认为那叫做“嵌套 jar ”?!?

非常感谢

最好的问候,

迈克

最佳答案

最简单的方法是解压 jxl.jar 并将其与您的类文件一起打包到一个 jar 中。

您也可以将 jxl.jar 放入您的 jar 中,使用 JarClassLoader 加载它并使用反射调用,但这可能不值得付出努力并增加复杂性。

这看起来应该是这样的:

import java.lang.reflect.Method;
import java.net.URL;
import java.net.URLClassLoader;

public class Preloader
{
public static void main(String[] args) throws Exception
{

Class<Preloader> c= Preloader.class;

URLClassLoader loader = new URLClassLoader(new URL[]{
c.getResource("program.jar"),
c.getResource("library.jar")});

Class<?> main_class=loader.loadClass("Main");
Method main_method = main_class.getMethod("main", args.getClass());
main_method.invoke(null, new Object[]{args});

}
}

不幸的是,它不适用于嵌套的 jar。 URLClassLoader 有问题。您可以将嵌套的 jar 提取到临时文件并将它们传递给 URLClassLoader。您还可以按照 here 所述使用自定义 URLStreamHandler ,它甚至可能是一个可行的解决方案。

关于java - 从自己的 Jar 项目调用 Jar 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6160854/

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