Skip to content

Releases: ingokegel/jclasslib

7.1

23 Apr 17:45
f61a6be

Choose a tag to compare

New features

  • Added "Find Subclasses" on class nodes (#85)

Find subclasses

  • Added "Find Implementing Classes" on interface nodes (#85)

Find implementing classes

  • Added "Find Annotated Elements" on annotation classes, plus a general
    "Search" action on the general info pane and on interface nodes (#85)

Find annotated elements

  • Class file scanning for "Find usages" is significantly faster. UTF-8
    constant pool entries are now decoded lazily, and attribute skipping can
    be enabled per read via the new ClassFileReadMode on DataInput
    (previously only controllable through a global system property)
  • Classpath tree scanning is noticeably faster on large class hierarchies
  • The Windows installer has been streamlined: additional locales, a
    persistent language selection, and a simpler installation flow
  • Support for reading Java 26 class files

Bug fixes

  • Obfuscated JARs where class entries are disguised as directories can now
    be opened (#75)
  • addConstantPoolEntry did not add placeholder slots for long and
    double constants (#79)
  • Hash codes of constant pool entries did not depend on the constant type
  • The class file version constant for Java 26 was incorrect
  • Dragging the same JAR file onto the browser a second time left the class
    file browser empty

7.0

12 Dec 18:35
51743cf

Choose a tag to compare

7.0

New features

  • jclasslib now has a modern look with new icons and a new logo

New icons

  • Added "Find usages" buttons to all constant pool entries

Find usages for constants

  • Added "Find usages" buttons to all field and method entries

Find usages for constants

  • Added a filter text field to the classpath chooser dialog.

Filter field in the file chooser

  • The filter text field on the constant pool and class member detail pane was modernized and now includes a match mode drop-down.
  • Added locales for Japanese and Korean
  • Support for reading and writing Java 25 classes

Bug fixes

  • "Show method" and "Show field" actions did not work if the method was implemented in a superclass of the referenced class
  • When opening a class file via the file association while jclasslib was not open, two windows were opened, with the empty window on top
  • Link colors in multi-line labels were not updated when light/dark mode was changed

6.1

10 Jan 14:55

Choose a tag to compare

6.1

New features

  • The data module is now a Kotlin Multiiplatform library. Java class parameters in signatures have been changed to Kotlin class parameters.
  • Support reading class files compiled by Java 23

6.0.5

29 Dec 11:44

Choose a tag to compare

New features

  • Support reading class files compiled by Java 21 and Java 22
  • When saving modified class files, ask whether to overwrite the original class files or to save to a different output directory with the option to remember the selection

6.0.4

10 Dec 18:45

Choose a tag to compare

New features

  • Show JVM spec for opcodes in Javadoc for Java 19
  • Support reading class files compiled by Java 19 and Java 20

Bug fixes

  • Fixed "class root not found" message in IntelliJ IDEA plugin

6.0.3

21 Nov 17:31

Choose a tag to compare

New features

  • Improved display of record attributes by displaying each record entry as a single node with nested attribute nodes
  • Support reading class files compiled by Java 18
  • Added a placeholder panel with instructions in the IDEA tool window

Bug fixes

  • Menu items with and without icons were not aligned on macOS
  • PermittedSubclassesAttribute and RecordAttribute were saved incorrectly and corrupted the class file
  • For Java 9+, the tree of JRE classes always showed the classes of the currently used JRE

6.0.1

19 Jul 08:40

Choose a tag to compare

Bug fixes

Updated translations with new messages in 6.0

6.0

08 Jul 14:15

Choose a tag to compare

6.0

New features

  • Editing functionality for constant pool, attributes and bytecode

You can edit constant pool entries:
Editing constant pool entries

Attribute values, like access flags:
Editing access flags

Bytecode instructions can be edited from the context menu:
Editing instructions

The opcode itself can be replaced with another compatible opcode:
Editing opcodes

The immediate values of instructions can be edited:
Editing immediate values

  • Attach mode: Connect to any locally running JVM and view and edit its loaded classes

Attach dialog

  • By setting -Djclasslib.locale=en (or another supported locale), the displayed language can be changed regardless of the default locale. In this way, the language can be overridden in the IDEA plugin
  • Links to JVM spec now show the document for Java 16 instead of Java 8

Bug fixes

  • Explicit language selection was broken in 5.8
  • UI fixes and improvements
  • Fixed error when writing the NestMembers attribute

5.8

22 Feb 11:49

Choose a tag to compare

5.8

New features

  • Runs natively on macOS ARM (Apple Silicon)
  • Linux x64 archive with a bundled JetBrains Runtime that works with fractional HiDPI
  • Polish translation
  • Automatic detection of dark mode
  • Support for reading class files up to Java 17

5.7

12 Oct 15:36

Choose a tag to compare

5.7

New features

  • Value labels and hyperlinks can be focused and text in value labels can be selected
  • Support the Record class file attribute new in Java 14
  • Support the PermittedSubclasses class file attribute new in Java 15

Bug fixes

  • Installer was not localized in Simplified Chinese
  • Checkbox and radio button menu items did not have the correct icon in the selected state