This repository has been archived by the owner on Nov 28, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 16
Legacy usage
Matt edited this page Aug 12, 2018
·
1 revision
This is a guide for legacy editions of JRemapper.
- 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
- Search by type:
- 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.
- 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.
Loading a file:
- Run the executable jar (JRemapper.jar)
- From the File menu, load a jar (Creates a listing of class files)
- Select a class file from the tree menu on the left (This will decompile it with CFR)
Renaming a class:
- Click the class name (The title bar should change, notifying which class you have selected)
- 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 becomepackage/SomeClass$Apple
all you need to do is replace the name in the text area withApple
instead ofpackage/SomeClass$Apple
.
- Inner classes do not require retyping the package. If you want
- Press enter
Renaming a field or method:
- Click the method or field (The title bar should change, notifying which member you have selected)
- Type a new name
- Press enter
Searching for a method or field (declaration):
- On the side menu labeled "Search ConstPools" click the dropdown and select "Members"
- Select method or field
- 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):
- Click the method or the field (The title bar should change, notifying which member you have selected)
- Right click the member and a context menu will appear, showing an option to search for references to the member
- Click the option and results will display in the search panel on the right.
Searching for method or field calls to a class:
- On the side menu labeled "Search ConstPools" click the dropdown and select "Classes"
- Select the textfield under the appropriate label (Depends on if you are searching for fields or methods)
- 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)
- Example: