# jaer **Repository Path**: littlevv/jaer ## Basic Information - **Project Name**: jaer - **Description**: Node clil tools for replace classes file in jar. - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-01-28 - **Last Updated**: 2021-02-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README - [Jear](#jear) - [Require](#require) - [install](#install) - [Description](#description) - [Replace class file in jar file](#replace-class-file-in-jar-file) - [Jstack tools](#jstack-tools) - [Example](#example) - [Replace class file](#replace-class-file) - [Jstack](#jstack) # Jear - Some tools for java developer. ## Require ```bash node v14.7.0^ jdk: any ``` ## install ```shell npm i jaer -g ``` ## Description ### Replace class file in jar file - `jaer help replace` ```shell #jaer help replace -V, --version output the version number -s, --source [source] Source jar file path -r, --resource [resource] Resource absoulte path! -d, --detail Whether record the detail msg to file -m, --message [message] Human readable message for recording the replacement info or others sth..? -md5, --md5str [md5str] Get md5 value of specifically file -h, --help display help for command ``` ### Jstack tools - `jaer help jstack` ```bash Usage: jaer jstack|jsk [options] Help get thred stack info to file Options: -p, --pid [pid] Pid of your java program! -i --interval [number] Interval time 【second】! -t --total [number] Total times for jstack! -d --dir [dir] Log file local storage dir! -n --name [name] Jstack log file prefix! -h, --help display help for command ``` ## Example ### Replace class file - Step1: put the source jar and replace resource in the same folder like this: ```shell . ├── io │ └── sth │ └── detail │ └── service │ └── AbcService.class └── test.jar ``` - step2: go to *.jar path, with command `cd` - step3: start replacement with `jaer`. - *Replace specifically class file* ```bash jaer replace -s test.jar -r io/sth/detail/service/AbcService.class ``` - *Replace multi class file* ```bash # the classes file in path io/sth/detail/service will be all replace into jar. jaer replace -s test.jar -r io/sth/detail/service ``` - *Record the replace operation info as log file* ```bash jaer replace -s test.jar -r io/sth/detail/service -d -m 'This replacement is for fixe error on jira-xxxx' # then you will get a file the same directory named 'jaer-replace.jaer' cat jaer-replace.jaer # file content ================================================================================ DATE: 2021-01-28 14:58:15 SOURCE: test.jar RESOURCE: io/sth/detail/service MD5 (Before replacement): 2587bd377a2d2a20c6d8707ff1b6a2ab MD5 (After replacement): 2587bd377a2d2a20c6d8707ff1b6a2ab MESSAGE: This replacement is for fixe error on jira-xxxx ================================================================================ DATE: 2021-01-29 14:58:15 SOURCE: test.jar RESOURCE: io/sth/detail/service MD5 (Before replacement): 2587bd377a2d2a20c6d8707ff1b6a2ab MD5 (After replacement): 2587bd377a2d2a20c6d8707ff1b6a2ab MESSAGE: This replacement is for fixe error on jira-xxxx ================================================================================ ``` ### Jstack - Get the stace trace info of pid with specifically execute plan. ```bash # Using command jps find out your program's pid jps # Using jaer to get stack trace. jaer jstack -p 76204 -i 1 -t 20 -d /Users/myMac/Desktop/jstack-test ### ouput like follow ____ _ _ ____ _____ ____ _ _ _____ ____ / ___|| | | | _ \| ____| _ \ | | / \ | ____| _ \ \___ \| | | | |_) | _| | |_) | _ | |/ _ \ | _| | |_) | ___) | |_| | __/| |___| _ < | |_| / ___ \| |___| _ < |____/ \___/|_| |_____|_| \_\ \___/_/ \_\_____|_| \_\ INFO: Stack trace info of process[pid:76204] INFO: ****PLAN: interval-1,total times: 20,may be cost :20 s Generate to file /Users/my Mac/Desktop/jstack-test/0_jstack_by_jaer_0.log successful! Generate to file /Users/myMac/Desktop/jstack-test/0_jstack_by_jaer_1.log successful! Generate to file /Users/myMac/Desktop/jstack-test/0_jstack_by_jaer_2.log successful! Generate to file /Users/myMac/Desktop/jstack-test/0_jstack_by_jaer_3.log successful! Generate to file /Users/myMac/Desktop/jstack-test/0_jstack_by_jaer_4.log successful! Generate to file /Users/myMac/Desktop/jstack-test/0_jstack_by_jaer_5.log successful! Generate to file /Users/myMac/Desktop/jstack-test/0_jstack_by_jaer_6.log successful! Generate to file /Users/myMac/Desktop/jstack-test/0_jstack_by_jaer_7.log successful! Generate to file /Users/myMac/Desktop/jstack-test/0_jstack_by_jaer_8.log successful! Generate to file /Users/myMac/Desktop/jstack-test/0_jstack_by_jaer_9.log successful! Generate to file /Users/myMac/Desktop/jstack-test/0_jstack_by_jaer_10.log successful! Generate to file /Users/myMac/Desktop/jstack-test/0_jstack_by_jaer_11.log successful! Generate to file /Users/myMac/Desktop/jstack-test/0_jstack_by_jaer_12.log successful! Generate to file /Users/myMac/Desktop/jstack-test/0_jstack_by_jaer_13.log successful! Generate to file /Users/myMac/Desktop/jstack-test/0_jstack_by_jaer_14.log successful! Generate to file /Users/myMac/Desktop/jstack-test/0_jstack_by_jaer_15.log successful! Generate to file /Users/myMac/Desktop/jstack-test/0_jstack_by_jaer_16.log successful! Generate to file /Users/myMac/Desktop/jstack-test/0_jstack_by_jaer_17.log successful! Generate to file /Users/myMac/Desktop/jstack-test/0_jstack_by_jaer_18.log successful! Generate to file /Users/myMac/Desktop/jstack-test/0_jstack_by_jaer_19.log successful! ==================== 20/20 INFO: All done! Successfuy get stack trace info of process[pid:76204] ```