正如您所提到的,您已經將該項目添加爲依賴項,我假設您已經擁有(或可以生成)該項目的jar
。您可以使用以下代碼來獲取所有類和相應方法的列表。該方法需要絕對路徑的jar文件:
private static void pareseJar(String jarFile) throws IOException, ClassNotFoundException {
JarFile jar = new JarFile(jarFile);
Enumeration<JarEntry> entries = jar.entries();
// load the jar
URL[] urls = { new URL("jar:file:" + jarFile + "!/") };
URLClassLoader classLoader = URLClassLoader.newInstance(urls);
while (entries.hasMoreElements()) {
JarEntry entry = entries.nextElement();
// if it is a class, load the same and the corresponding methods
if (entry.getName().endsWith(".class")) {
String className = entry.getName().replaceAll("/", ".");
className = className.replace(".class", "");
Class<?> loadedClass = classLoader.loadClass(className);
System.out.println("Package Name : " + loadedClass.getPackage().getName());
System.out.println("Class Name : " + className);
Method[] methods = loadedClass.getDeclaredMethods();
for (Method method : methods) {
System.out.println(" Method Name : " + method.getName());
}
}
}
}
我執行相同的commons-codec-1.10.jar
並且它導致下面的輸出:
Package Name : org.apache.commons.codec.binary
Class Name : org.apache.commons.codec.binary.Base32
Method Name : decode
Method Name : encode
Method Name : isInAlphabet
Package Name : org.apache.commons.codec.binary
Class Name : org.apache.commons.codec.binary.Base64
Method Name : decode
Method Name : encode
Method Name : isArrayByteBase64
Method Name : encodeBase64String
Method Name : isInAlphabet
Method Name : isUrlSafe
什麼依賴管理系統是您使用爲您的項目。您可以隨時將'another'項目作爲依賴項添加到您的'current'項目中,並且可以根據需要訪問這些類和包。 – Sumit
是的,我將項目添加爲依賴項。但我想要項目的軟件包列表。 – RJMIMI38