BsonJ 2023-02-01 00:25 采纳率: 0%
浏览 34
已结题

Java动态调用classfinal处理后的jar

网上的调用方法都不能使。
用URLConnection方式调用报错找不到类,调用普通的jar没问题。

请问各位大神~有什么办法能动态调用处理后的jar
  • 写回答

2条回答 默认 最新

  • m0_54204465 2023-02-01 07:32
    关注

    在 Java 中,可以通过使用 Java 的反射机制来实现动态调用处理后的 jar 包。

    try {
      URL url = new URL("file:/path/to/your.jar");
      URLClassLoader loader = new URLClassLoader(new URL[] { url });
      Class cls = Class.forName("fully.qualified.ClassName", true, loader);
      Object obj = cls.newInstance();
      Method mth = cls.getDeclaredMethod("yourMethodName", new Class[] {});
      Object result = mth.invoke(obj, new Object[] {});
    } catch (Exception e) {
      e.printStackTrace();
    }
    

    在上面的代码中,通过创建一个 URLClassLoader,并使用 Class.forName() 方法来加载所需的类。然后使用 getDeclaredMethod() 方法来获取该类中需要调用的方法,接着使用 invoke() 方法来实际调用该方法。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 2月8日
  • 修改了问题 2月1日
  • 创建了问题 2月1日