|
1 | | -# About program |
2 | | -Небольшая утилита позволяющая grab/dump/take/get/~steal~ байт код из работующей виртуальной машины Java и сохранять его на диск. |
3 | | -Имеет графический интерфейс, несколько форматов сохранения, совместима с jdk 1.8+, и небольшой пред-загрузцик позволяющий выбирать java для запуска |
| 1 | +# About Program |
| 2 | +A small utility that allows you to grab/dump/take/get/~steal~ bytecode from a running Java Virtual Machine and save it to disk. |
| 3 | +It has a graphical interface, several output formats, compatible with JDK 1.8+, and includes a small preloader (bootstrap) to choose the Java runtime for launch. |
| 4 | + |
4 | 5 | ## Usage |
5 | 6 |
|
6 | 7 | > [!NOTE] |
7 | | -> Из-за специфики приложения, для запуска нужна JDK (не JRE) |
| 8 | +> Due to the nature of the application, a **JDK** (not a JRE) is required to run it. |
8 | 9 |
|
9 | | -Если вы запустите приграмму на JRE то откроется окно пред-загрузщика |
10 | | -и вам будет предложено выбрать JDK для запуска |
| 10 | +If you launch the program on a JRE, bootstrap window will open and prompt you to select a JDK. |
11 | 11 | >  |
12 | 12 |
|
13 | | -Введите туда путь до jdk, например: `C:\Program Files\Java\jdk1.8.0_231` |
14 | | -Кнопка launch перезапустит приложение на указанной jdk |
15 | | -Если запуск не удастся вы увидете окно пред-загрузщика сново |
| 13 | +Enter the path to the JDK, for example: `C:\Program Files\Java\jdk1.8.0_231` |
| 14 | +**Launch** button will restart application using the specified JDK. |
| 15 | +If the launch fails, you will see the bootstrap window again. |
16 | 16 |
|
17 | 17 | ### Main frame |
18 | 18 |
|
19 | | -После запуска вы увидите список запущеных виртуальных машин. Выберете нужную JVM, подключитесь, добавте нужниые вам классы во вторую панель с помощью кнопки add to grab (самая правая кнопка левой панели) |
| 19 | +After successful launch, you will see a list of running Java virtual machines. |
| 20 | +Select the target JVM, connect to it, then add classes you need to right-side panel using **Add to grab** button (rightmost button on left panel). |
20 | 21 |
|
21 | 22 |  |
22 | 23 |  |
23 | 24 |  |
24 | 25 |
|
25 | 26 | ### Class grabbing |
26 | 27 |
|
27 | | -Чтобы сохранить выбранные классы нажмине кнопку grab (нижняя правая кнопка) |
28 | | -Если путя из текстового поля с права не существует откроется File chooser, выбирете файл формата `.zip`, `.jar`, или папку |
| 28 | +To save the selected classes, press the **Grab** button (bottom right button). |
| 29 | +If the path written in text field on the right does not exist, a file selection window opens, select a `.zip`, `.jar` file, or folder. |
29 | 30 |
|
30 | 31 | > [!NOTE] |
31 | | -> При выборе файла не поддерживаемого формата его формат будет автомотически заменен на `.jar` |
32 | | -
|
33 | | -После вам будет предложенно выбрать формат записи |
| 32 | +> If a file with an unsupported extension is selected, extension will be automatically changed to `.jar`. |
34 | 33 |
|
| 34 | +After that, you will be asked to choose the output format. |
35 | 35 | >  |
36 | 36 |
|
37 | | -Есть 3 формата записи |
| 37 | +There are three output formats: |
38 | 38 |
|
39 | | -- Full package |
40 | | -- Package + Class name |
41 | | -- Just class name |
| 39 | +- **Full package** |
| 40 | +- **Package + Class name** |
| 41 | +- **Just class name** |
42 | 42 |
|
43 | 43 | **Full package:** |
44 | | -- Сохраняет каждый класс так что его package является путем в файловой системе, например: класс `java.util.List` будет в файловой системе `java\util\List.class` |
| 44 | +- Saves each class so that its package is used as the directory path. For example, class `java.util.List` becomes `java\util\List.class`. |
45 | 45 |
|
46 | | -**Package + Class name** |
47 | | -- Сохраняет каждый класс так что его именем будет package + classname, например: класс `java.util.List` будет в файловой системе `java.util.List.class` |
| 46 | +**Package + Class name** |
| 47 | +- Saves each class using full package + classname as the file name. For example, class `java.util.List` becomes `java.util.List.class`. |
48 | 48 |
|
49 | | -**Just class name** |
50 | | -- Сохраняет каждый класс так что его именем будет classname при условии что файлов с таким именем нет иначе package + classname, например: класс `java.util.List` будет в файловой системе `List.class` |
| 49 | +**Just class name** |
| 50 | +- Saves each class using only its name, provided no file with that name already exists, otherwise uses: package + class name. For example, class `java.util.List` becomes `List.class`. |
51 | 51 |
|
52 | 52 | ## Credits |
53 | | -Special thanks to JFormDesigner for his wonderful Look & Feel (FlatLaf) |
54 | | -Developer: [@Artur114](https://github.com/Artur114Projects) |
55 | | -Libraries: FlatLaf, Gson, Log4j |
| 53 | +Special thanks to [@JFormDesigner](https://github.com/JFormDesigner) for the wonderful Look & Feel ([FlatLaf](https://github.com/JFormDesigner/FlatLaf)). |
| 54 | +**Libraries:** FlatLaf, Gson, Log4j |
| 55 | +**Developer:** [@Artur114](https://github.com/Artur114Projects) |
0 commit comments