jar java如何使用commnad line工具按类名查找导入完整路径?
有了javap
,我可以做到:
xb@dnxb:/tmp$ javap 'java.util.Base64'
Compiled from "Base64.java"
public class java.util.Base64 {
public static java.util.Base64$Encoder getEncoder();
public static java.util.Base64$Encoder getUrlEncoder();
public static java.util.Base64$Encoder getMimeEncoder();
public static java.util.Base64$Encoder getMimeEncoder(int, byte[]);
public static java.util.Base64$Decoder getDecoder();
public static java.util.Base64$Decoder getUrlDecoder();
public static java.util.Base64$Decoder getMimeDecoder();
}
xb@dnxb:/tmp$
但是如何在不知道类名在java下的情况下按类名搜索。什么?(使用命令行实用程序,无需java编码)
xb@dnxb:/tmp$ javap 'Base64'
Error: class not found: Base64
xb@dnxb:/tmp$ javap '*.Base64'
Error: class not found: *.Base64
xb@dnxb:/tmp$ javap '*Base64'
Error: class not found: *Base64
xb@dnxb:/tmp$
# 1 楼答案
我想我可以用以下方法创建地图:
,然后
grep
(最好将其作为shell函数):请注意
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/classlist
只包含了约2559行,与/tmp/rt.map
中的约20706行不同,因此我不能直接使用grepclasslist
文件