我试图找出使用类名的jar名称。假设我将类Name作为“Socket”或“LinkedList”作为String。所以我想知道如何找出它属于哪个罐子,s。 我试图通过这种方式找出
public static String getModuleName(Class classname) {
String modulename = null;
URL resource = classname.getResource('/' + classname.getName().replace('.', '/') + ".class");
System.out.println(resource.getPath());
String[] split = resource.getFile().split("/");
for (String string : split) {
if (string.contains("jar")) {
modulename = string.replace("!", "");
}
}
return modulename;
}
在这个方法中,如果我正在传递
Class class1 = String.class;
System.out.println(getModuleName(class1));
它给了Jar名字,但是它给了jar名字,但是对于某些要求,我没有像“String.class”那样只有字符串“String”。 从这个字符串中,怎么知道它属于哪个罐子。
由于
答案 0 :(得分:0)
你可以做的是获取字符串输入,然后添加.class,它们使用Class.forName将其转换为类对象(完全限定名称)。
String classstring = oldstring + ".class";
Class<?> class1 = Class.forName(classstring);
System.out.println(getModuleName(class1));
或者
String classstring = oldstring;
ClassLoader cloader;
Class class2 = cloader.loadClass(classstring);
System.out.println(getModuleName(class2);