你可以自己写一个程序去处理这个问题,但是会有个问题,如果某一个类不是通过import的方式,而写全了类名的方式,这样就会少了这个类呀。
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
public class Test {
public static void main(String[] args) throws Exception {
Test t = new Test();
t.readCalss("D:\\javasrc\\java\\io\\BufferedReader.java");
}
//递归读取.java文件里import的类文件
public void readCalss(String className) throws IOException {
List list = readImportCalss(className);
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i).toString());
if (readImportCalss("D:\\javasrc\\"+list.get(i).toString().replace('.', '\\')+ ".java") == null) {
} else {
readCalss("D:\\javasrc\\"+list.get(i).toString().replace('.', '\\')+ ".java");
}
}
}
//查找某个java文件import的类名
public List readImportCalss(String filePathAndName) throws IOException {
List list = new ArrayList();
try {
FileInputStream fs = new FileInputStream(filePathAndName);
InputStreamReader isr;
isr = new InputStreamReader(fs);
BufferedReader br = new BufferedReader(isr);
try {
String data = "";
while ((data = br.readLine()) != null) {
if (data.indexOf("import") != -1) {
list.add(data.substring(data.indexOf("import") + 6,
data.indexOf(";")).trim());
}
}
} catch (Exception e) {
}
} catch (IOException es) {
list = null;
}
return list;
}
}