public void logDuplicatedJars() { new ClasspathUtils().logProblematicJars(); }
public String[] getClassPath() { return new ClasspathUtils().getClassPathArray(); }
public String[] getDuplicatedJars() { return new ClasspathUtils().getDuplicatedJars(); }
public void logClassPath() { new ClasspathUtils().logClassPath(); }
loadJarsFromManifestFile(classLoader); } catch (IOException ioe) { log.warn("MANIFEST.MF is loaded, so we will not search for duplicated jars!"); addJarToMap(urls[i].getFile());
for (int i = 0; i < arr.length; i++) { String jarSimpleName = getJarSimpleName(arr[i]); String manifestFile = manifestElement.getFile(); manifestFile = manifestFile.replace("\\", "/"); addJarToMap(jarAbsolutePath); } else { log.trace("File \"" + jarAbsolutePath
/** * @return return a list with all jars found in the classpath */ public String[] getClassPathArray() { loadJarsFromClasspath(); List<String> classPath = new ArrayList<String>(); for (List<String> elements : loadedJarsMap.values()) { classPath.addAll(elements); } if (!classPath.isEmpty()) { return classPath.toArray(new String[classPath.size()]); } else { return new String[0]; } }
/** * Log all jars found in the classpath. * If a jar is found more than once, then we list these one after another */ public void logClassPath() { log.info("Classpath of JVM on " + HostUtils.getLocalHostIP() + ": \n" + getClassPathDescription()); }
private void addJarToMap( String jar ) { String jarSimpleName = getJarSimpleName(jar); String jarAbsolutePath = jar; if (jarAbsolutePath.startsWith("/")) { jarAbsolutePath = jarAbsolutePath.substring(1); } if (!StringUtils.isNullOrEmpty(jarSimpleName)) { if (!loadedJarsMap.containsKey(jarSimpleName)) { loadedJarsMap.put(jarSimpleName, new ArrayList<>(Arrays.asList(jarAbsolutePath))); } else { if (!loadedJarsMap.get(jarSimpleName).contains(jarAbsolutePath)) { loadedJarsMap.get(jarSimpleName).add(jarAbsolutePath); } } } else { log.trace("Could not parse simple name for JAR \"" + jar + "\""); } }
String[] classpathArray = getClassPathArray();
/** * @return list of jars that are found more than once in the classpath */ public String[] getDuplicatedJars() { loadJarsFromClasspath(); List<String> duplicatedJars = new ArrayList<String>(); for (Entry<String, List<String>> loadedJarEntry : loadedJarsMap.entrySet()) { if (loadedJarEntry.getValue().size() > 1) { duplicatedJars.addAll(loadedJarEntry.getValue()); } } if (!duplicatedJars.isEmpty()) { return duplicatedJars.toArray(new String[duplicatedJars.size()]); } return new String[0]; }