private static Collection<String> catalogClasspath() { final List<String> files = new ArrayList<String>(); final String[] classpath = System.getProperty("java.class.path", "").split(File.pathSeparator); for (final String path : classpath) { final File tmp = new File(path); if (tmp.isFile() && path.toLowerCase().endsWith(".jar")) { catalogArchive(tmp, files); } else if (tmp.isDirectory()) { final int len = tmp.getPath().length() + 1; catalogFiles(len, tmp, files); } } return files; }
public static Collection<String> getEmbeddedLibraryList() { final Collection<String> result = new ArrayList<String>(); final Collection<String> files = catalogClasspath(); for (final String file : files) { if (file.startsWith("NATIVE")) { result.add(file); } } return result; }
System.out.println("JNI lib location: " + (EmbeddedLibraryTools.LOADED_EMBEDDED_LIBRARY ? "embedded" : "java.library.path")); System.out.println("current platform: " + EmbeddedLibraryTools.getCurrentPlatformIdentifier()); final Collection<String> files = EmbeddedLibraryTools.getEmbeddedLibraryList(); for (final String file : files) { System.out.println("embedded library: " + file);
private static void catalogFiles(final int prefixlen, final File root, final Collection<String> files) { final File[] ff = root.listFiles(); if (ff == null) { throw new IllegalStateException("invalid path listed: " + root); } for (final File f : ff) { if (f.isDirectory()) { catalogFiles(prefixlen, f, files); } else { files.add(f.getPath().substring(prefixlen)); } } }
StringBuilder url = new StringBuilder(); url.append("/NATIVE/"); url.append(getCurrentPlatformIdentifier()).append("/"); for (String lib : libs) { URL nativeLibraryUrl = null;