Be notified of new releases
Create your free GitHub account today to subscribe to this repository for new releases and build software alongside 28 million developers.Sign up
- Support for reading class files with major versions 54 and 55 (Java 10 and 11)
- Support for dynamic class file constants in Java 11
- Added a "Save all open classes" action to the menu. This is useful for extracting class files from Java 9+ JDKs.
- Fixed exception when running the GUI from the IDE with Java 9
- After adding a classpath entry in the classpath browser, the browser was empty.
- When showing the classpath browser, the tree was re-scanned even if the classpath was unchanged
- Fixed Java 9 warning for illegal reflective access when debug mode is enabled
- Fixed wrong attribute length when writing ModuleTargetAttribute
- Branch instructions were marked as invalid in code attributes if switch instructions were present in between the branch instruction and the target instruction
Support running with Java 9 on macOS
- The class browser now has a module path and a class path tab
- Support for CONSTANT_Module_Info and CONSTANT_Package_info structures in Java 9 class files
- Support for all new class file attributes that occur in the Java 9
module-info.classfile: ModulePackages, ModuleMainClass, ModuleTarget, ModuleHashes and ModuleResolution.
- Could not use relative path names as arguments for invoking jclasslib
- Data for unknown attributes was not written
- Auto-resize in table attribute details panels was broken (regression in 5.0)
- Class path browser was not updated after changing the JRE home directory in the class path setup dialog
- Added a plugin for IntelliJ IDEA that can be installed via the plugin manager. The action in the "View menu"
can be invoked when a Java, Groovy or Kotlin file is open in the editor.
The bytecode will be shown in the "jclasslib" tool window on the right hand side. Multiple class files can be open at the same time.
- Added support for the SourceDebugExtension class file attribute
- When opening a class file, select the "General Information" node
- Reload class file action did not work (regression in 5.0)
- LocalVariableTable attribute: "Length" column always displayed "10" (Regression in 5.0)
- System property jclasslib.io.skipAttributes did not work anymore (Regression in 5.0)
- jclasslib's code base has been converted to the Kotlin programming language. Parts of the code base have been rewritten to better fit with Kotlin's programming paradigms. If used as a library, all classes continue to be usable from Java. However, many classes have been renamed and restructured.
- The jclasslib UI now uses draggable tabs instead of the outdated internal frames in previous versions, a window can be split horizontally, vertically or in a 4-way split
- Multiple top-level windows with separate class path configurations are now supported
- Browsing classes in the runtime library of Java 9 JREs is now supported
- Drag and drop of class files and JAR files into a jclasslib window is now supported
- Filtering for the constant pool
- Inline links to the JVM spec in the bytecode display
- Selectable text in the bytecode display
- When reloading a class file, the current selection is always retained
- Java 8 is now required to run the jclasslib UI
- Signed Windows installer and signed DMG for Mac OS X
- Improved display of CONSTANT_InvokeDynamic_info, now links into BootstrapMethods attribute
- Improved display of BootstrapMethods attribute, now displays single table with all attributes
Support for runtime type annotations. All Java 8 class file attributes are now displayed.
When an opening a class file did not succeed, the internal frame was in an undefined state
New attributes: StackMapTable, BootstrapMethods, MethodParameters, RuntimeParameterAnnotations
Writing was broken for certain attributes containing annotations
- Support for Java 8 (class files compiled with -target 1.8)
- Show major class file version as verbose text in the "General information"
- Added display for CONSTANT_MethodHandle_info and CONSTANT_MethodType_info constant pool entries
- File extension handling for .class and .jcw files
- Dragging .class and .jcw files into the main window will open them
- Code base was changed to use Java language features up to Java 6. Opcodes and access flags are now implemented as
enums instead of interfaces. This has caused some incompatible changes to the API.
- The iinc instruction was read incorrectly for negative arguments
- The CONSTANT_InvokeDynamic_info constant pool entry was missing