最近想要自己写一下 Vim 中 Java 代码的自动补全,涉及到 import
部分的自动导入,记录下关键步骤。想要做自动导入,首先需要知道依赖包中类名的列表,也就是需要反解出 jar 中 class 列表。
这里需要 java.util.jar
包中的几个类,直接上代码
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
| import java.util.ArrayList; import java.util.Enumeration; import java.util.List; import java.util.jar.JarEntry; import java.util.jar.JarFile;
/** * Created by wxnacy */ public class ClassList {
public static void main(String args[]) {
List<String> list = new ArrayList<String>(); try { JarFile jarFile = new JarFile("/Users/wxnacy/.m2/repository/com/alibaba/fastjson/1.1.34/fastjson-1.1.34.jar"); Enumeration enu = jarFile.entries(); while (enu.hasMoreElements()) { JarEntry jarEntry = (JarEntry) enu.nextElement(); String name = jarEntry.getName(); // 过滤出 class 文件 if (name.endsWith(".class") && name.indexOf("$") == -1 ) { // 重新格式化文件名 name = name.substring(0, name.indexOf(".class")); name = name.replaceAll("/", "."); System.out.println(name); list.add(name); }
} } catch (Exception e) { e.printStackTrace(); } System.out.println("list length " + list.size());
}
}
|