@ingokegel ingokegel released this Jun 18, 2018 · 6 commits to master since this release

Assets 6

New Features

  • 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.

Bug fixes

  • 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
5.2

@ingokegel ingokegel released this Jul 10, 2017 · 86 commits to master since this release

Assets 6

New features

  • The class browser now has a module path and a class path tab

module path

  • 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.class file: ModulePackages, ModuleMainClass, ModuleTarget, ModuleHashes and ModuleResolution.

module-info.class

Bug fixes

  • 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
5.1

@ingokegel ingokegel released this Feb 4, 2017 · 155 commits to master since this release

Assets 6

Major changes

  • 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.

IntelliJ IDEA action

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.

IntelliJ IDEA window

Other changes

  • Added support for the SourceDebugExtension class file attribute
  • When opening a class file, select the "General Information" node

Bug fixes

  • 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)
5.0

@ingokegel ingokegel released this Jun 13, 2016 · 213 commits to master since this release

Assets 6

Major changes

  • 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

constant pool filters

  • 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

constant pool filters

Other changes

  • 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

Deployment changes

  • Java 8 is now required to run the jclasslib UI
  • Signed Windows installer and signed DMG for Mac OS X

@ingokegel ingokegel released this Jan 10, 2016 · 741 commits to master since this release

Assets 2

Bug fixes

Regression: NOP opcodes broke the bytecode display

4.3

@ingokegel ingokegel released this Jan 10, 2016 · 744 commits to master since this release

Assets 2

Features

  • Improved display of CONSTANT_InvokeDynamic_info, now links into BootstrapMethods attribute
  • Improved display of BootstrapMethods attribute, now displays single table with all attributes
4.2

@ingokegel ingokegel released this Jan 10, 2016 · 749 commits to master since this release

Assets 2

Features

Support for runtime type annotations. All Java 8 class file attributes are now displayed.

Bug fixes

When an opening a class file did not succeed, the internal frame was in an undefined state

4.1

@ingokegel ingokegel released this Jan 10, 2016 · 758 commits to master since this release

Assets 2

Features

New attributes: StackMapTable, BootstrapMethods, MethodParameters, RuntimeParameterAnnotations

Bug fixes

Writing was broken for certain attributes containing annotations

4.0

@ingokegel ingokegel released this Jan 10, 2016 · 769 commits to master since this release

Assets 2

Features

  • 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.

Bug fixes

  • The iinc instruction was read incorrectly for negative arguments
  • The CONSTANT_InvokeDynamic_info constant pool entry was missing