Javassist
Developer(s) | Shigeru Chiba (programmer) |
---|---|
Stable release | 3.25.0-GA
/ April 16, 2019 |
Written in | Java |
Engine | |
Operating system | Cross-platform |
Type | Bytecode Engineering Library |
License | dual license: MPL, LGPL |
Website | www |
Search Javassist on Amazon.
Javassist (Java programming assistant) is a Java library providing a means to manipulate the Java bytecode of an application.[1] In this sense Javassist provides the support for structural reflection, i.e., the ability to change the implementation of a class at runtime.
Bytecode manipulation is performed at load-time through a provided class loader.
Javassist enables Java programs to define a new class at runtime and to modify a class file when the Java virtual machine (JVM) loads it. Unlike other similar bytecode editors, Javassist provides two levels of application programming interface (API): source level and bytecode level. Using the source-level API, programmers can edit a class file without knowledge of the specifications of the Java bytecode; the whole API is designed with only the vocabulary of the Java language. Programmers can even specify inserted bytecode in the form of Java source text; Javassist compiles it on the fly. On the other hand, the bytecode-level API allows the users to directly edit a class file as other editors.
Uses[edit]
Javassist can be used for the following:
- For specifying the bytecode using source code – can compile a fragment of source text online (e.g., just a single statement)
- For aspect-oriented programming (AOP) – can introduce new methods into a class and insert before/after/around advice at both the caller and callee sides
- For reflection at runtime – can use a metaobject that controls method calls on base-level objects
- For remote method invocation – can call a method on a remote object running on a web server, an alternative to Java RMI that does not need a stub compiler such as rmic
See also[edit]
Other articles of the topic Computer programming : Software release life cycle, Software developer, Programmer
Some use of "" in your query was not closed by a matching "".Some use of "" in your query was not closed by a matching "".
References[edit]
- ↑ "Javassist". JBoss Community.
External links[edit]
- Lua error in Module:Official_website at line 90: attempt to index field 'wikibase' (a nil value).
- Jboss-javassist on GitHub
This software article is a stub. You can help EverybodyWiki by expanding it. |
This article "Javassist" is from Wikipedia. The list of its authors can be seen in its historical and/or the page Edithistory:Javassist. Articles copied from Draft Namespace on Wikipedia could be seen on the Draft Namespace of Wikipedia and not main one.