-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathclass2bytes.sh
More file actions
executable file
·46 lines (40 loc) · 1.28 KB
/
class2bytes.sh
File metadata and controls
executable file
·46 lines (40 loc) · 1.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#!/bin/bash
export CLASS_FILE=$(find . -name "SimTargetImpl.class" | head -n 1)
export TARGET_FILE=/tmp/SimTargetBytes.java
function dump_bytes() {
hexdump -C $CLASS_FILE | \
sed "/^.\{8\}$/d" | \
sed "s/^.\{10\}//g" | \
sed "s/ |.*$//g" | \
sed "s/ / /g" | \
sed "s/ \{2,\}//g" | \
sed "s/ /,0x/g" | \
sed "s/^/0x/g" | \
sed "s/0x/(byte)0x/g" | \
sed "s/,/, /g" | \
sed "s/$/,/g" | \
sed "s/^/ /g"
}
rm -rf $TARGET_FILE
{
echo "// Auto generated by class2bytes.sh";
echo "// Do not edit by hands";
echo "// Java class bytecode, JDK8";
echo "";
echo "// SimTargetBytes.java, generated from $CLASS_FILE";
echo "package demo.base;";
echo "";
echo "public final class SimTargetBytes {";
echo "";
echo " public static final byte[] SIM_TARGET_BYTES = {";
dump_bytes;
echo " };";
echo "";
echo " private SimTargetBytes(){";
echo " }";
echo "";
echo "}";
} > $TARGET_FILE
cp $TARGET_FILE demo-inmem-jdk8/src/main/java/demo/base/SimTargetBytes.java
cp $TARGET_FILE demo-inmem-jdk11/src/main/java/demo/base/SimTargetBytes.java
cp $TARGET_FILE demo-inmem-jdk17/src/main/java/demo/base/SimTargetBytes.java