Hi,
is there a way to find out, whether an other instance of ImageJ has loaded a certain Plugin? Thanks Christian |
Hi Christian,
is there a way to find out, whether an other instance of ImageJ has loaded a > certain Plugin? > I'm not sure I understand your question. If the plugin has an underscore in the name, it should appear in the Plugins menu. What do you mean by "an other instance"? I've been working on some code lately to help diagnose whether various libraries are available within the ImageJ environment. I grabbed some of my code and turned it into a standalone plugin (below) that you can use to verify from where (if anywhere) ImageJ is loading a particular Java class. It requirs that you know the fully qualified class name of the plugin you want to check, though. Also note that ImageJ's class loader does not properly identify Java class versions, so my plugin always lists the version as "null" at the moment. -Curtis -- // // Plugin_Finder.java // import ij.IJ; import ij.plugin.PlugIn; import ij.gui.GenericDialog; import java.io.File; import java.net.URLDecoder; /** * Utility class for finding location of a given plugin or other Java class. * @author Curtis Rueden ctrueden at wisc.edu */ public class Plugin_Finder implements PlugIn { public void run(String arg) { GenericDialog gd = new GenericDialog("Plugin Finder"); gd.addStringField("Class_name: ", "Plugin_Finder", 30); gd.showDialog(); if (gd.wasCanceled()) return; String fqcn = gd.getNextString(); // load class try { Class c = Class.forName(fqcn); // try to detect version from the package String version = null; if (c != null) { Package p = c.getPackage(); if (p != null) { String pVendor = p.getImplementationVendor(); String pVersion = p.getImplementationVersion(); if (pVendor != null && pVersion != null) { version = pVersion + " (" + pVendor + ")"; } else if (pVersion != null) version = pVersion; else if (pVendor != null) version = pVendor; } } // get resource containing the class String className = fqcn.substring(fqcn.lastIndexOf(".") + 1); String path = c.getResource(className + ".class").toString(); path = path.replaceAll("^jar:", ""); path = path.replaceAll("^file:", ""); path = path.replaceAll("^/*/", "/"); path = path.replaceAll("^/([A-Z]:)", "$1"); path = path.replaceAll("!.*", ""); path = URLDecoder.decode(path, "UTF-8"); String slash = File.separator; if (slash.equals("\\")) slash = "\\\\"; path = path.replaceAll("/", slash); IJ.showMessage("Found class " + fqcn + ":\n" + " Path = " + path + "\n" + " Version = " + version); } catch (Throwable t) { IJ.showMessage("Could not find class " + fqcn + ":\n" + t); } } } On Tue, Apr 8, 2008 at 11:52 AM, Phase GmbH <[hidden email]> wrote: > Hi, > > is there a way to find out, whether an other instance of ImageJ has loaded > a certain Plugin? > > Thanks > > Christian > |
Free forum by Nabble | Edit this page |