Я понял, что могу создать свою карту следующим образом:
xb@dnxb:/tmp$ java -verbose |& grep rt.jar | head -1 #to find out java runtime path
[Opened /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/rt.jar]
xb@dnxb:/tmp$ unzip /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/rt.jar -d /tmp/rt #unzip the rt.jar
creating: /tmp/rt/META-INF/
extracting: /tmp/rt/META-INF/MANIFEST.MF
extracting: /tmp/rt/com/oracle/net/Sdp$1.class
extracting: /tmp/rt/com/oracle/net/Sdp$SdpSocket.class
...
extracting: /tmp/rt/java/io/Serializable.class
extracting: /tmp/rt/java/lang/String.class
extracting: /tmp/rt/java/lang/Object.class
xb@dnxb:/tmp$
xb@dnxb:/tmp$ find /tmp/rt > /tmp/rt.map #create list path as map
xb@dnxb:/tmp$
, а затем grep
(возможно, лучше сделать это как функцию оболочки):
xb@dnxb:/tmp$ grep -rni Base64\.class /tmp/rt.map
1839:/tmp/rt/java/util/Base64.class
2276:/tmp/rt/java/util/prefs/Base64.class
10340:/tmp/rt/com/sun/xml/internal/messaging/saaj/util/Base64.class
13363:/tmp/rt/com/sun/org/apache/xml/internal/security/utils/Base64.class
15044:/tmp/rt/com/sun/org/apache/xerces/internal/impl/dv/xs/Base64BinaryDV$XBase64.class
15096:/tmp/rt/com/sun/org/apache/xerces/internal/impl/dv/util/Base64.class
xb@dnxb:/tmp$
Примечаниечто /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/classlist
включает только ~ 2559 строк, в отличие от ~ 20706 строк в /tmp/rt.map
, поэтому я не могу направить файл grep classlist
.