【问题标题】:Java Reflection ImportsJava 反射导入
【发布时间】:2016-01-18 02:27:32
【问题描述】:

关于 Java 反射机制的简单问题。我的程序应该从 .jar 文件中加载 .class 项。

我得到一个java.lang.NoClassDefFoundError 用于 jar 文件中的类,这些类正在导入外部包(我无权访问)。是否有机会通过异常而无需导入所需的包。

谢谢。

【问题讨论】:

  • 你在 Jar A 中有类,它们依赖于另一个 Jar B 中的类,但你只包括 Jar A 在你的类路径中,这就是你的意思吗?不,没有办法加载这些类,因为它们的实现取决于缺少的代码。你到底想做什么?
  • 是的,差不多就是这样:)。 TY
  • “无权访问”是什么意思?您不知道如何将它添加到您的运行时类路径或 jar 文件不存在?
  • 没有可用的 Jar 文件。存在依赖问题。

标签: java reflection import packages


【解决方案1】:

其他都正确,不能直接从依赖的依赖中导入代码。

话虽如此,防止此问题的一个好方法是使用 Maven 和 Gradle 等构建技术。当您使用其中任何一种技术导入依赖项时,您会自动导入依赖项的依赖项。

【讨论】:

    【解决方案2】:

    我不这么认为——为了加载反射,你必须使用类加载器加载类,然后可以实例化对象和执行方法,所以你需要依赖项。

    如果您不想实例化或执行,那么字节码库将允许您检查类文件的内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-17
      • 2010-09-30
      相关资源
      最近更新 更多