Uploaded image for project: 'Commons BCEL'
  1. Commons BCEL
  2. BCEL-314

Expose the true class name

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • None
    • None

    Description

      Natively, in the bytecode, class names look like this:

      java/lang/String

      You can see it in NoClassDefFoundError, etc.

      Bytecode decompilers and other bytecode-engineering libs (like kotlinx-metadata) will use this native format.

      For some reason, BCEL explicitly converts it to the dot notation:

      Shorten long class names, java/lang/String becomes java.lang.String

      I'm not sure how is that shorter, but it definitely makes interoperability harder, ie. if you want to base Java-specific bytecode engineering with BCEL and still reuse Kotlin-specific libraries for Kotlin-specific bytecode.
      Could JavaClass expose the real, actual, bytecode-level class name?

      Attachments

        Activity

          People

            Unassigned Unassigned
            Dagguh Maciej Kwidziński
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated: