如何从java中的.class文件获取实例

2024-01-08

坦白说,我什至不知道这是否可能。 但我想做的就像下面这样。

  1. 我通过终端中的 javac 命令从 ClassFile.java 创建了一个类文件。
  2. 然后我想从 .java 文件或 .class 文件获取一个实例。
  3. 接下来,我在eclipse中制作了另一个项目,正如你猜的那样,这个项目路径和上层文件路径完全不同。例如,ClassFile.java/class 文件可以位于“~/Downloads”文件夹中,另一方面,新的 eclipse 项目可以位于“~/workspace/”中。
  4. 所以我通过 FileInputStream 读取了步骤 1 中引用的文件。
  5. 从这里,我只需粘贴我的代码。

    公共类主要{

    private static final String CLASS_FILE_PATH = 
            "/Users/juneyoungoh/Downloads/ClassFile.class";
    
    private static final String JAVA_FILE_PATH = 
            "/Users/juneyoungoh/Downloads/ClassFile.java";
    
    private static Class getClassFromFile(File classFile) throws Exception {
        System.out.println("get class from file : [" + classFile.getCanonicalPath() + " ]");
        Object primativeClz = new Object();
        ObjectInputStream ois = null;
        ois = new ObjectInputStream(new FileInputStream(classFile));
        primativeClz = ois.readObject();
        ois.close();
        return primativeClz.getClass();
    }
    
    public static void main(String[] args) throws Exception {
        getClassInfo(getClassFromFile(new File(CLASS_FILE_PATH)));
    }
    

    }

就像你的假设一样,这段代码有错误。 例如,它显示:

java.io.StreamCurruptedException: invalid stream header : CAFEBABE

有什么方法可以从 .class 文件或 .java 文件获取对象实例吗?

附: 我希望不要使用额外的库。


private static final String CLASS_FOLDER =
        "/Users/juneyoungoh/Downloads/";

private static Class getClassFromFile(String fullClassName) throws Exception {
    URLClassLoader loader = new URLClassLoader(new URL[] {
            new URL("file://" + CLASS_FOLDER)
    });
    return loader.loadClass(fullClassName);
}

public static void main( String[] args ) throws Exception {
    System.out.println((getClassFromFile("ClassFile"));
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从java中的.class文件获取实例 的相关文章

  • R中整数类和数字类有什么区别

    我想先说我是一个绝对的编程初学者 所以请原谅这个问题是多么基本 我试图更好地理解 R 中的 原子 类 也许这适用于一般编程中的类 我理解字符 逻辑和复杂数据类之间的区别 但我正在努力寻找数字类和整数类之间的根本区别 假设我有一个简单的向量x
  • 通过SOCKS代理连接Kafka

    我有一个在 AWS 上运行的 Kafka 集群 我想用标准连接到集群卡夫卡控制台消费者从我的应用程序服务器 应用程序服务器可以通过 SOCKS 代理访问互联网 无需身份验证 如何告诉 Kafka 客户端通过代理进行连接 我尝试了很多事情 包
  • 使用 GWT 读取非常大的本地 XML 文件

    我正在使用 GWT 构建我的第一个 Java 应用程序 它必须从一个非常大的 XML 文件中读取数据 当我尝试发送对文件中信息的请求时遇到问题 并且我不太确定它是否与文件的大小或我的语义有关 在我的程序中 我有以下内容 static fin
  • 是否有任何简单(且最新)的 Java 框架可用于在 Swing 应用程序中嵌入电影?

    我正在构建一个小型 Swing 应用程序 我想在其中嵌入一部电影 重要的是 这个应用程序是一个 WebStart 应用程序 并且该库应该能够打包在我启动的 jnlp 中 即 不依赖于本机库 我知道并尝试过 JMF 但我认为与其他框架相比 其
  • 通往楼梯顶部的可能路径

    这是一个非常经典的问题 我听说谷歌在他们的面试中使用过这个问题 问题 制定一个递归方法 打印从楼梯底部到楼梯顶部的所有可能的独特路径 有 n 个楼梯 您一次只能走 1 步或 2 步 示例输出 如果它是一个有 3 级楼梯的楼梯 1 1 1 2
  • org.hibernate.QueryException:无法解析属性:文件名

    我正在使用休眠Criteria从列中获取值filename在我的桌子上contaque recording log 但是当我得到结果时 它抛出异常 org hibernate QueryException 无法解析属性 文件名 com co
  • 如何将 Mat (opencv) 转换为 INDArray (DL4J)?

    我希望任何人都可以帮助我解决这个任务 我正在处理一些图像分类并尝试将 OpenCv 3 2 0 和 DL4J 结合起来 我知道DL4J也包含Opencv 但我认为它没什么用 谁能帮我 如何转换成 INDArray 我尝试阅读一些问题here
  • 如何在代理后面安装 Eclipse Neon

    对于 Neon Eclipse 附带了一个安装程序 我在安装程序中找不到任何配置菜单 我的java版本是 java version java version 1 8 0 72 Java TM SE Runtime Environment b
  • Jackson XML ArrayList 输出具有两个包装器元素

    我在 Jackson 生成的 XML 输出中得到了两个包装器元素 我只想拥有一个 我有一个 Java bean Entity Table name CITIES JacksonXmlRootElement localName City pu
  • 自动生成Flyway的迁移SQL

    当通过 Java 代码添加新模型 字段等时 JPA Hibernate 的自动模式生成是否可以生成新的 Flyway 迁移 捕获自动生成的 SQL 并将其直接保存到新的 Flyway 迁移中 以供审查 编辑 提交到项目存储库 这将很有用 预
  • 是否可以通过编程方式查找 logback 日志文件?

    自动附加日志文件以支持电子邮件会很有用 我可以以编程方式设置路径 如以编程方式设置 Logback Appender 路径 https stackoverflow com questions 3803184 setting logback
  • 生成的序列以 1 开头,而不是注释中设置的 1000

    我想请求一些有关 Hibernate 创建的数据库序列的帮助 我有这个注释 下面的代码 在我的实体类中 以便为合作伙伴表提供单独的序列 我希望序列以 1000 开头 因为我在部署期间使用 import sql 将测试数据插入数据库 并且我希
  • 内部存储的安全性如何?

    我需要的 对于 Android 我需要永久保存数据 但也能够编辑 并且显然是读取 它 用户不应访问此数据 它可以包含诸如高分之类的内容 用户不得对其进行编辑 我的问题 我会 并且已经 使用过Internal Storage 但我不确定它实际
  • GWT 2.3 开发模式 - 托管模式 JSP 编译似乎不使用 java 1.5 兼容性

    无法编译 JSP 类 生成的 servlet 错误 DefaultMessage 上次更新 0 日期 中 0 时间 HH mm ss z 语法 错误 注释仅在源级别为 1 5 时可用 在尝试以开发模式在 Web 浏览器中打开我的 gwt 模
  • Docker 和 Eureka 与 Spring Boot 无法注册客户端

    我有一个使用 Spring Boot Docker Compose Eureka 的非常简单的演示 我的服务器在端口 8671 上运行 具有以下应用程序属性 server port 8761 eureka instance prefer i
  • 返回 Java 8 中的通用函数接口

    我想写一种函数工厂 它应该是一个函数 以不同的策略作为参数调用一次 它应该返回一个函数 该函数根据参数选择其中一种策略 该参数将由谓词实现 嗯 最好看看condition3为了更好的理解 问题是 它没有编译 我认为因为编译器无法弄清楚函数式
  • 使用按钮作为列表的渲染器

    我想使用一个更复杂的渲染器 其中包含列表的多个组件 更准确地说 类似于this https stackoverflow com questions 10840498 java swing 1 6 textinput like firefox
  • org.apache.commons.net.io.CopyStreamException:复制时捕获 IOException

    我正在尝试使用以下方法中的代码将在我的服务器中创建的一些文件复制到 FTP 但奇怪的是我随机地低于错误 我无法弄清楚发生了什么 Exception org apache commons net io CopyStreamException
  • 在java中使用多个bufferedImage

    我正在 java 小程序中制作游戏 并且正在尝试优化我的代码以减少闪烁 我已经实现了双缓冲 因此我尝试使用另一个 BufferedImage 来存储不改变的游戏背景元素的图片 这是我的代码的相关部分 public class QuizApp
  • Spring表单ModelAttribute字段验证避免400 Bad Request错误

    我有一个ArticleFormModel包含正常发送的数据html form由 Spring 使用注入 ModelAttribute注释 即 RequestMapping value edit method RequestMethod PO

随机推荐

  • 使用 ng 模型变量使用 ng 角度 2 的变化

    如何在 Angular 2 中使用 ng change 事件 每当 ng model 变量发生变化时 就必须调用一个函数 ngModel variable ngchange variable 你可以使用ngModelChange event
  • Flutter Cloud Firestore 添加复杂类型抛出无效参数:“团队”实例

    我有一个 Match 类 其中包含 Team 类型的其他类的列表 仅当列表为空时 才可以将新文档 匹配 上传到 Firestore 一旦列表中存在团队项目 请尝试将其添加到 Firestore 中无效参数 团队 实例 Team类只包含简单的
  • 如何从 Json 序列化中排除属性

    我有一个 DTO 类 我将其序列化 Json Serialize MyClass 我怎样才能排除public它的财产 它必须是公开的 因为我在其他地方的代码中使用它 如果您使用 Json Net属性 JsonIgnore 在序列化和反序列化
  • SSI 还是 PHP Include()?

    基本上我很快就会推出一个网站 我预计会有很多流量 就场景而言 假设我每天会有 100 万个独立用户 数据将是静态的 但我也需要包含 我只会在另一个 html 页面中包含一个 html 页面 没有任何动态 为了保持简单 我不会透露我的原因 我
  • 检测 viewpager 中的触摸/点击事件

    我对 Android 开发还很陌生 目前我正在使用 viewpager 试图了解如何处理触摸 点击事件 我花了整个早上寻找这个问题的答案 但似乎找不到任何对我有帮助的东西 基本上我有一个带有 5 个片段的 viewpager 它们都使用相同
  • 为什么 Visual Studio Code 忽略我的tasks.json 文件?

    我对tasks json 有一个问题 我通过将其简化为以下内容来简化它 在我的 Visual Studio Code 项目的根目录中 文件资源管理器侧边栏内清晰可见的根文件夹是 vscode 而 vscode 内部是tasks json 这
  • MYSQL PHP 按日期排序并将结果按每个日期分组

    我试图寻找问题的解决方案 但我不太确定我在寻找什么 所以我运气不佳 我有一个简单的 MySQL 数据库 其中有一个名为 活动 的表 在该表中 我有 start date activity description 和 activity loc
  • 用原则 2 设置 LIMIT?

    我尝试编写一个查询 使用子查询 但我不知道如何在子查询中设置限制 我的查询 query ids this gt getEntityManager gt createQuery SELECT e id FROM MuzichCoreBundl
  • 在 CentOS 7.7 上初始化 MariaDB 10.4.12

    我在计算机上配置了 3 个驱动器 1 个用于数据文件 1 个用于事务日志文件 1 个用于临时文件 我想在 yum 安装后第一次运行时初始化 MariaDB 这是我的步骤 使用以下参数创建 etc my cnf mysqld aria log
  • 将 NuGet contentFiles 传递到引用的项目

    我有一个 NuGet 包 其中有一个打包为Content in contentFiles folder 然后我有两个带有 SDK 样式 csproj 的 C 项目 A 和 B 其中项目B参考项目A as a ProjectReference
  • 如何使用数据注释属性类来消除表单中的空字符串?

    我试图在表单中要求一个文本输入字段 这意味着表单中需要有一些内容 然而 添加一个 Required 我的模型的标签不起作用 具体来说 查看用户名属性 public class ColumnWidthMetaData DisplayName
  • 结构图 Web Api 2 帐户控制器和个人帐户

    我对 IOC 和 web api 2 相当陌生 但已经让 StructureMap 在 web api 2 中的我自己的控制器上工作 我没有管理的是使用个人帐户在 AccountController 上使用 StructureMap 我使用
  • 在 Firefox 附加组件中打开套接字连接

    我想从 JavaScript 中的 Firefox 插件中打开套接字连接 传出 而不是侦听 nsIServerSocket 连接应该是 TCP 到指定端口上的本地主机 并将用于与计算机上运行的另一个进程进行通信 我怎样才能打开这样的客户端套
  • ionic4/Angular7 - 类型“文件”上不存在属性“dataDirectory”

    i user 文件传输 https ionicframework com docs native file transfer 下载需要的文件文件本机 https ionicframework com docs native file还 在i
  • 处理游戏中心身份验证

    根据苹果文档 https developer apple com library ios documentation GameKit Reference GKLocalPlayer Ref Reference Reference html我
  • Apple 当前的 Reachability 类是否向后兼容 iOS 3.1?

    我正在实施苹果的可达性 http developer apple com iphone library samplecode Reachability Introduction Intro html apple ref doc uid DT
  • 用两个或多个其他元素替换列表中的单个元素,而不影响其余元素的顺序

    有没有办法用两个或更多其他元素替换列表中的单个元素而不干扰列表的其余部分 我知道您可以将一个元素替换为另一个元素 但我正在寻找要添加的多个元素 用例是我想根据特定条件将给定元素拆分为两个或多个元素 例如 假设列表包含图上从节点 A 到节点
  • CTE 会提高性能吗?

    with ini as select select ini a join ini b join ini c SQL Server引擎执行了多少次calculate结果来自ini table 我试图回答 在你的帮助下 的问题是如果with语句
  • NodeJS 是否可以动态返回 SSL 证书?

    我想在我的 NodeJS 应用程序中动态返回 ssl 证书信息 我有两个域名链接到同一个节点应用程序 我只看到创建服务器时可以指定 ssl 设置 是否可以根据请求的 url 动态返回 ssl 证书 否则 如果我必须在另一个端口上创建第二个服
  • 如何从java中的.class文件获取实例

    坦白说 我什至不知道这是否可能 但我想做的就像下面这样 我通过终端中的 javac 命令从 ClassFile java 创建了一个类文件 然后我想从 java 文件或 class 文件获取一个实例 接下来 我在eclipse中制作了另一个