package org.herac.tuxguitar.util; import java.io.File; import java.io.FilenameFilter; import org.apache.log4j.Logger; public class TGLibraryLoader { private static TGLibraryLoader instance; /** The Logger for this class. */ public static final transient Logger LOG = Logger .getLogger(TGLibraryLoader.class); public static TGLibraryLoader instance() { if (instance == null) { instance = new TGLibraryLoader(); } return instance; } private TGLibraryLoader() { super(); } public void loadLibraries(File folder, final String prefix, final String extension) { if (folder != null && folder.exists()) { FilenameFilter filter = new FilenameFilter() { public boolean accept(File dir, String name) { if (name == null) { return false; } if (prefix != null && prefix.length() > 0) { int index = name.indexOf(prefix); if (index != 0) { return false; } } if (extension != null && extension.length() > 0) { int index = name.indexOf(extension); if (index != (name.length() - extension.length())) { return false; } } return true; } }; String[] files = folder.list(filter); for (int i = 0; i < files.length; i++) { File file = new File(folder.getAbsolutePath() + File.separator + files[i]); if (file.exists() && !file.isDirectory()) { loadLibrary(file); } } } } protected void loadLibrary(File file) { try { LOG.debug("Loading: " + file.getAbsolutePath()); System.load(file.getAbsolutePath()); } catch (Throwable throwable) { LOG.error(throwable); } } }