bcel相关内容

Ant loadproperties 失败(bcel 错误?)

我正在编写一个简单的构建脚本,它应该从 Java 类文件中获取一些常量并将它们用作我文件名中的版本号.我使用 Eclipse 和它自己的 Ant,但将 bcel-5.2.jar 放在我的 libs 文件夹和 Ant 调用的类路径中. ..
发布时间:2021-11-11 02:56:03 Java开发

编译后从字节码中删除注释

我们使用的库包含用 JAXB 注释进行注释的 bean.我们使用这些类的方式并不依赖于 JAXB.换句话说,我们不需要 JAXB,也不依赖注解. 然而,由于注解存在,它们最终会被其他处理注解的类引用.这要求我在我们的应用程序中捆绑 JAXB,这是不允许的,因为 JAXB 位于 javax.* 包中(android 不允许“核心库"包含在您的应用程序中). 因此,考虑到这一点,我正在寻找 ..
发布时间:2021-11-10 22:40:31 Java开发

解析 Jar 文件并找到类之间的关系?

如何检测jar文件中的类是否正在扩展其他类,或者是否有对其他类对象的方法调用或其他类对象被创建?然后系统出哪个类继承哪个类,哪个类调用哪个类的方法. 我使用 Classparser 来解析 jar .这是我的代码的一部分: String jarfile = "C:\\Users\\OOOO\\Desktop\\Sample.Jar";jar = 新的 JarFile(jarfile);枚 ..
发布时间:2021-07-09 20:52:46 Java开发

在注入JVM之前如何验证Java字节码?

我正在尝试验证“即时"生成的字节码! 我已经进行了几次尝试,一次尝试是使用eclipse编译器在运行时编译我的类,另一次尝试是从内存中进行编译,如下所述: 从内存编译 最初的结果看起来还不错,但是我仍然不确定100%的验证过程是否符合JAVA 6准则和安全性度量以及正常的OOP模型. 有没有更好的方法来验证字节码? 解决方案 如果使用标准类加载器加载生成的字节码,则 ..
发布时间:2021-04-17 18:30:53 Java开发

使用bcel时构造方法的堆栈图

我正在尝试bcel通过在特定指令之前插入invoke来修改方法. 看来,我的检测将导致不同的stackmap表,而bcel包本身无法自动生成该表. 因此,我检测到的类文件包含旧的stackmap表,这将导致jvm错误. 我曾尝试过使用removeCodeAttributes(MethodGen的方法)来删除所有代码属性.例如,它可以在简单的情况下工作,例如包装函数.就我而言,它现在无法正常工作. ..
发布时间:2020-11-29 06:28:31 Java开发

如何以编程方式创建Java文件

我正在创建一个util-class,该类写入 .java文件,用作掩盖程序-生成器。 该实用程序类将生成AConverter.java'(请参见下面的示例)。 我想知道如何编写实用程序类。 我搜索了一下,发现推荐使用apache bcel。但是我找不到从 String 编写 .java文件并使其在我的程序中运行的示例 期望是... class ADTO { p ..
发布时间:2020-10-04 22:08:56 Java开发

Java找出.class导入的内容

有没有办法找出一个班级有什么进口? 在问题:让乔恩·斯凯特(Jon Skeet)说您不能使用反射来做到这一点,但是 如果要查找已编译代码中使用的所有类型, 会稍有不同。您可能希望将BCEL视为分析字节码的 方式。 这就是我想知道的 解决方案 这是 ASM字节码操作框架解释了如何读取类依赖项和ASM。 ..
发布时间:2020-09-25 07:38:13 Java开发

向Java类添加字段

希望在运行时使用CGLib,ASM,BCEL(方面)和Javassist将字段添加到类中。... 只是为了直截了当看起来这些字节码操纵器不会更新实际的类,而是允许用户仅转储修改(例如使用CGLib和writeFile方法)。希望我能找到一个解决方案,可以(a)加载类(而不是使用BCEL进行InputStream),并且(b)更新类。 也许这很正常?人们通常会创建一个代理并将其传递给代理 ..
发布时间:2020-09-25 07:28:45 Java开发

如何从Java字节码中判断局部变量是否为“最终”? (与BCEL有关)

在哪里有信息(例如,本地变量是否以Java字节码存储在“ final”中)?我知道对于字段(全局变量)和方法来说,这些都是在访问标志位中找到的,但是似乎无法在局部变量表中找到等效项。 我是对这个问题感兴趣,因为我正在使用BCEL检查局部变量是否为最终变量,并在AccessFlags类中找到与字段,方法和类等效的变量。 谢谢 解决方案 局部变量的确定性由编译器检查,并且不会在字节 ..
发布时间:2020-09-25 07:23:39 Java开发

替换Java中的静态引用方法

我有一个如下所示的类,其方法只返回一个String,但我想修改它从另一个类返回的内容,而无需自己对其进行硬编码. public class Name { public static String getName() { return "MyName"; } } 有没有办法做到这一点?我尝试了BCEL,但这似乎并没有改变返回值. 编辑:这是针对mod的 ..
发布时间:2020-05-09 18:56:47 Java开发

更改类加载器

我正在尝试在运行时切换类加载器: public class Test { public static void main(String [] args)抛出异常{ final InjectingClassLoader classLoader = new InjectingClassLoader(); Thread.currentThread()。setContextClassLoa ..
发布时间:2018-12-07 12:01:27 Java开发

在运行时创建简单的POJO类(字节码)(动态)

我有以下情况.. 我正在编写一些工具,对数据库运行用户输入的查询并返回结果.. 最简单的方法是将结果返回为: List 但我需要更进一步。 我需要创建(在运行时)一些带有名称的POJO(或DTO),并为它创建字段和setter以及getter。使用返回的数据填充它,然后使用生成的 .class 文件将其返回给用户... 所以这里的想法是如何在运行时创 ..
发布时间:2018-11-27 11:50:58 Java开发

的VerifyError:堆栈尺寸过大(这是什么意思?)

我是相当新的Java字节code。我使用BCEL生成字节code,但是当我尝试使用产生code我得到一个错误信息。 (回想起来,这看起来就像是ObjectWeb ASM更先进,更普遍比BCEL使用。) 下面是错误消息: 异常线程“main”java.lang.VerifyError: (等级:CB / IO /的FileDescriptor,方法:设置 签名:(I)j) 堆栈大小太大 下 ..
发布时间:2016-07-18 21:29:03 Java开发

FindBugs的蚂蚁脚本不接受bcel.jar

我的FindBugs安装到我的蚂蚁lib目录下,并添加以下code到我的主要ANT脚本: <目标名称=“FindBugs的”取决于=“初始化”> < FindBugs的家=“C:\\\\ \\\\ FindBugs的”产量“HTML OUTPUTFILE =”C:\\\\ \\\\ FindBugs的out.html“jvmargs =” - Xms512M“> ..
发布时间:2016-05-18 22:02:40 Java开发

蚂蚁loadproperties失败(BCEL错误?)

我工作的一个简单的构建脚本应该从一个Java类文件获取一些常量,并将它们作为我的文件名中的版本号。我使用Eclipse和自己的蚂蚁,但放的 BCEL-5.2.jar 的在我的libs文件夹和到类路径的蚂蚁电话。 <目标名称=“generate_version”依赖=“编译”> &所述; loadproperties SRCFILE =“$ {dir.dest} /MyVersion. ..
发布时间:2016-05-18 21:33:17 Java开发

动态编辑/ Java中的Andr​​oid创建类

我要寻找一种方式来动态定义类和Android的实例化它们在运行时。从我的理解,这在Android中已经完成,我只是需要一些帮助计算出来。 我可以一个类似的结果,在Javascript和PHP。我知道它可以在Java中使用类似ASM,BCEL或者CGLIB来完成。但是,我不知道有足够的了解任何一个了解他们是否会在Android上运行。或者,他们将工作,有什么意义呢? 如果,假设,所有三个将在An ..
发布时间:2016-03-15 23:07:12 Java开发

从字节code编译后去除注释

我们使用的是包含被注解为JAXB标注豆库。没有在我们使用这些类的方法取决于JAXB。换句话说,我们不需要JAXB和不依赖于注释 不过,因为注解存在,他们最终由处理注释的其它类被引用。这需要我在我们的应用程序,这是不允许的捆绑JAXB,因为JAXB是在的javax。* 包(安卓不允许“核心库”是包括在应用程序)。 因此​​,考虑到这一点,我正在寻找一种方式来从编译后的字节code删除注释。我知道 ..
发布时间:2015-12-02 14:46:54 Java开发