Skip to content

Commit c339700

Browse files
Added draft README.md
1 parent ee98374 commit c339700

1 file changed

Lines changed: 52 additions & 0 deletions

File tree

README.md

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# About program
2+
Небольшая утилита позволяющая grab/dump/take/get/~steal~ байт код из работующей виртуальной машины Java и сохранять его на диск.
3+
Имеет графический интерфейс, несколько форматов сохранения, совместима с jdk 1.8+, и небольшой пред-загрузцик позволяющий выбирать java для запуска
4+
## Usage
5+
6+
> [!NOTE]
7+
> Из-за специфики приложения, для запуска нужна JDK (не JRE)
8+
9+
Если вы запустите приграмму на JRE то откроется окно пред-загрузщика
10+
и вам будет предложено выбрать JDK для запуска
11+
> ![Bootstrap](https://github.com/Artur114Projects/JVMByteCodeGrabber/blob/master/images/bcg-bootstrap.png)
12+
13+
Введите туда путь до jdk, например: `C:\Program Files\Java\jdk1.8.0_231`
14+
Кнопка launch перезапустит приложение на указанной jdk
15+
Если запуск не удастся вы увидете окно пред-загрузщика сново
16+
17+
### Main frame
18+
19+
После запуска вы увидите список запущеных виртуальных машин. Выберете нужную JVM, подключитесь, добавте нужниые вам классы во вторую панель с помощью кнопки add to grab (самая правая кнопка левой панели)
20+
21+
![Screen 1](https://github.com/Artur114Projects/JVMByteCodeGrabber/blob/master/images/bcg-screen-1.png)
22+
![Screen 2](https://github.com/Artur114Projects/JVMByteCodeGrabber/blob/master/images/bcg-screen-2.png)
23+
![Screen 3](https://github.com/Artur114Projects/JVMByteCodeGrabber/blob/master/images/bcg-screen-3.png)
24+
25+
### Class grabbing
26+
27+
Чтобы сохранить выбранные классы нажмине кнопку grab (нижняя правая кнопка)
28+
Если путя из текстового поля с права не существует откроется File chooser, выбирете файл формата `.zip`, `.jar`, или папку
29+
30+
> [!NOTE]
31+
> При выборе файла не поддерживаемого формата его формат будет автомотически заменен на `.jar`
32+
33+
После вам будет предложенно выбрать формат записи
34+
35+
> ![Screen 4](https://github.com/Artur114Projects/JVMByteCodeGrabber/blob/master/images/bcg-screen-4.png)
36+
37+
Есть 3 формата записи
38+
39+
- Full package
40+
- Package + Class name
41+
- Just class name
42+
43+
**Full package:**
44+
- Сохраняет каждый класс так что его package является путем в файловой системе, например: класс `java.util.List` будет в файловой системе `java\util\List.class`
45+
46+
**Package + Class name**
47+
- Сохраняет каждый класс так что его именем будет package + classname, например: класс `java.util.List` будет в файловой системе `java.util.List.class`
48+
49+
**Just class name**
50+
- Сохраняет каждый класс так что его именем будет classname при условии что файлов с таким именем нет иначе package + classname, например: класс `java.util.List` будет в файловой системе `List.class`
51+
52+
## Credits

0 commit comments

Comments
 (0)