Skip to content
This repository has been archived by the owner on Nov 28, 2020. It is now read-only.

Legacy usage

Matt edited this page Aug 12, 2018 · 1 revision

Legacy (1.* versions)

This is a guide for legacy editions of JRemapper.

Main features

  • Easily rename classes, fields, methods by clicking, renaming, and pressing enter.
  • Syntax highlighted java source (Decompiled by CFR), highlighted and more by RSyntaxTextArea).
  • Search for values in the the constant pools of any class (Remapped values also supported by search)
    • Search by type:
      • UTF8 - Any text constant
      • String - Any string constant
      • Class declaration/reference
      • Method declaration/reference - By name
      • Method declaration/reference- By descriptor
      • Field declaration/reference - By name
      • Field declaration/reference - By descriptor
  • Fully customize CFR's dcompilation options via the 'CFR' menu in the toolbar.
  • Automated mapping capabilities in the 'Mapping' menu in the toolbar.
  • Save your changes as a mappings file, or as a jar with the changes applied.

Minor features

  • Middle click to close a tab.
  • Right click a class in the java source to:
    • Open it in a new tab
    • Search for references to its methods or fields
  • Right click a member in the java source to:
    • search for references
  • Tooltips for descriptor examples on search menu.
  • Window title updates to specify what the current selection is (Such as a class, method, or field).
  • Ability to undo mapping changes via the 'History' menu in the toolbar.

How to use

Loading a file:

  1. Run the executable jar (JRemapper.jar)
  2. From the File menu, load a jar (Creates a listing of class files)
  3. Select a class file from the tree menu on the left (This will decompile it with CFR)

Renaming a class:

  1. Click the class name (The title bar should change, notifying which class you have selected)
  2. Delete the class name and retype a new name (Internal names are used, so for packages you would use com/example/MyClass)
    • Inner classes do not require retyping the package. If you want package/SomeClass$Inner to become package/SomeClass$Apple all you need to do is replace the name in the text area with Apple instead of package/SomeClass$Apple.
  3. Press enter

Renaming a field or method:

  1. Click the method or field (The title bar should change, notifying which member you have selected)
  2. Type a new name
  3. Press enter

Searching for a method or field (declaration):

  1. On the side menu labeled "Search ConstPools" click the dropdown and select "Members"
  2. Select method or field
  3. Enter the name of the method, or the descriptor of the method
    • Descriptors use internal syntax, for more details check the class file specs.
    • Search for primitive fields will ONLY show primitives. For example to search for integer fields you would search for "I". A special case for primitives is applied to exclude non-primitives that would otherwise match the search, such as Ljava/lang/Iterable;.

Searching for a method or field (reference):

  1. Click the method or the field (The title bar should change, notifying which member you have selected)
  2. Right click the member and a context menu will appear, showing an option to search for references to the member
  3. Click the option and results will display in the search panel on the right.

Searching for method or field calls to a class:

  1. On the side menu labeled "Search ConstPools" click the dropdown and select "Classes"
  2. Select the textfield under the appropriate label (Depends on if you are searching for fields or methods)
  3. Enter the name of the class that has the references you want to look for. '
    • Example: me/coley/bmf/ClassNode
    • The class must be located in the jar file. Searching for java/util/List for example will show no results. (This may change in the future)
Clone this wiki locally