如何从文件系统加载任意 java .class 文件并对其进行反映?

2023-12-29

我想制作一个命令行实用程序,它根据外部类文件的反射执行一些操作。我将传递 .class 文件或源文件的路径(可能是通配符)。在执行过程中的某个时刻,我需要获取每个类的 Class 对象,而事先不知道它们的包名称。要做到这一点需要什么?我可以看什么来开始?我还可以访问这些类的源文件。

这是java 1.6中的。

另外,使用java编译器API从源获取类对象会更容易吗?


您将需要创建一个ClassLoader http://java.sun.com/j2se/1.4.2/docs/api/java/lang/ClassLoader.html并使用defineClass http://java.sun.com/j2se/1.4.2/docs/api/java/lang/ClassLoader.html#defineClass%28java.lang.String,%20byte%5B%5D,%20int,%20int%29创建一个Class http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Class.html从你读过的文件中。将动态 Java 代码添加到您的应用程序 http://www.javaworld.com/javaworld/jw-06-2006/jw-0612-dynamic.html阅读此类内容很有趣,它甚至描述了来源的汇编。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从文件系统加载任意 java .class 文件并对其进行反映? 的相关文章

随机推荐

  • 将 C# 中的结构序列化为 C++,反之亦然

    有没有一种简单的方法可以序列化 C 结构 然后从 C 反序列化它 我知道我们可以将 csharp 结构序列化为 xml 数据 但我必须在 c 中实现 xml 反序列化器 C 中哪种序列化器最容易从 C 反序列化 我希望两个应用程序 一个 C
  • 使用哪些 NuGet 源进行恢复?

    我正在做一个简单的dotnet restore在我的Mac上 我正在使用 目前 最新的dotnet CLI 版本 2 2 https dotnet microsoft com download 由于您的项目文件夹中可以同时拥有 NuGet
  • Caddy - 如何仅为一个域禁用 https

    我有一个 Caddy v2 的配置文件 如下所示 sentry mydomain ru reverse proxy sentry 9000 tasks mydomain ru reverse proxy taiga proxy 80 ain
  • 网格数据结构

    通常 可扩展 网格表示为列表列表 行列表 每行都有单元格列表 这些列表是某种链接列表 在此数据结构中操作 删除 插入 行既简单又便宜 只需重新链接以前的节点即可 但是当涉及到列时 例如删除列 它会变成一个非常长的操作 我需要 循环 要删除索
  • array+=value 在 ksh 中不起作用?

    我在某处读到 ksh 的数组支持 附加新元素 但我尝试了它 但它不起作用 ksh arr a b c d ksh arr e ksh echo arr ae b c d ksh 为什么arr 0 变成ae 要将一个元素添加到数组中 应该如下
  • 如何在不阻塞的情况下确定 goroutine 是否已完成?

    到目前为止我见过的所有例子都涉及阻塞以获得结果 通过 lt chan操作员 我当前的方法涉及传递指向结构的指针 type goresult struct result resultType finished bool goroutine 在
  • 在后台选项卡上运行画布

    我最近创建了一个 HTML5 画布动画 也使用Processing js 问题是 当我将浏览器切换到不同的选项卡时 动画停止播放 当用户位于与包含动画的选项卡不同的选项卡时 如何允许动画继续播放 例子 http jsfiddle net E
  • ConstraintLayout 隐藏 TextView 的最后一行 app:layout_constrainedHeight="true"

    我注意到奇怪的行为ConstraintLayout 版本 1 1 3 隐藏最后一行TextView每当我尝试使用高度时wrap content财产和layout constrainedHeight被设定为true With layout c
  • Panda时间序列重采样+线性调整值

    使用 python 和 pandas 如何将时间序列重新采样为 5 分钟间隔 偏移量 整个小时的零分钟 同时线性调整值 因此 我想改变这一点 value 00 01 2 00 05 10 00 11 22 00 14 28 进入这个 val
  • 使用 Java 8 日期时间 API 时如何将 AM/PM 符号更改为我自己的字母表

    我们有一个应用程序 我们接受客户的日期时间格式 我们最近开始迁移到 Java 8 新的日期时间 API 因为它们是线程安全的 看下面的代码 您可以看到在准备格式化程序之前 我们将 A 和 P 设置为 AM 和 PM 字符串 我们从客户那里获
  • 想要在嵌入标准 C# 应用程序的 WebBrowser 控件中启用 BHO

    我有一个标准的 winforms C 应用程序 其中拖有一个网页浏览器控件 我们还有一个 C BHO 当它在 IE7 或 IE8 中运行时 我们通常通过 COM 与之交互 我没有看到任何方法告诉 web 浏览器控件加载 BHO BHO 不显
  • 如何禁用解析作为 url 参数/从 url 传递的登录参数

    应用程序记录所有请求urls 这意味着 不要使用 url 参数进行身份验证 因为这会导致日志充满对的情况 login abc password 123 为此我配置了spring security从中读取参数request body 这是通过
  • Google Picker - 将文件 ID 返回到我的 Google 脚本

    我有一个相当基本的电子表格 它使用一些 Google 脚本来完成各种任务 我试图为最终用户清理界面 并决定实施 Google Picker 最初 用户必须手动将 CSV 导入到电子表格中 这里的新目标是通过 Google Picker 选择
  • TensorFlow:tf.summary.text 和换行符

    如何使用 tf summary text 发出包含换行符的文本 我尝试过更换 n with br 但我无法让输出显示正确的换行符 如果没有正确的换行符 则很难读取 yaml 输出 如下所示 张量板text使用 Markdown 格式 尽管它
  • 如何使用spring data jpa连接从多个实体返回对象?

    我有三个实体 EntityA EntityB 和 EntityC 我需要使用 spring data jpa 从这些实体中将连接查询的值获取到对象列表中 查询是 select x id x formNo x name z testScore
  • 用约翰·梅杰的等式重写

    约翰 梅杰的等式带有以下重写引理 Check JMeq ind r JMeq ind r forall A Type x A P A gt Prop P x gt forall y A JMeq y x gt P y 很容易将其概括为 Le
  • 编码的 UI 测试_C#_manual_intervention

    我想通过键盘或鼠标交互来干预 C 中编码的 UI 测试的执行 例如 我想通过按 Tab 键暂停测试 并在再次按 Tab 键时继续测试 预先非常感谢您 由于您在评论中提到您想要暂停测试以便在计算机上执行其他操作 因此我同意 Coding Na
  • QueryOver API OrderBy 使用案例

    如何使用 QueryOver API 执行以下 LINQ to NHibernate 查询 这会从数据库中获取 Item 的所有记录的列表 并将状态为 Returned 的 Item 放置到列表的末尾 状态是一个枚举 映射到数据库中的 nv
  • 使用 jstl 获取明天的日期

    我尝试了以下方法来获取 JSTL 中明天的日期
  • 如何从文件系统加载任意 java .class 文件并对其进行反映?

    我想制作一个命令行实用程序 它根据外部类文件的反射执行一些操作 我将传递 class 文件或源文件的路径 可能是通配符 在执行过程中的某个时刻 我需要获取每个类的 Class 对象 而事先不知道它们的包名称 要做到这一点需要什么 我可以看什