Dear List,
I would like to incorporate the Skeletonize (2D/3D) plugin into the ij.jar file. I have been unsuccessful in finding a way to do so. I have the Skeletonize (2D/3D) executable jar file located in my plugin folder. I successfully run the plugin on a daily basis when I use ImageJ. I cannot figure out how to add a plugin that is in my plugin folder to the ij.jar. I have "uncompressed" the ij.jar and placed the Skeletonize3D.class file in the jar's plugin folder. I then went into the IJ Properties.txt file and modified it to add Skeletonize (2D/3D) as a user plugin. As shown below: # Install user plugins located in ij.jar to Plugins>User Plugins submenu user_plugins01="Skeletonize (2D/3D)",ij.plugin.Skeletonize3D_ (I am not sure what the arguments above are supposed to be. I could not find documentation on adding user plugins via the IJProperties.txt route. What I did looked the closest to want other lines had in them.) I then rezipped everything. When next I startup ImageJ the plugin shows up on the user plugin menu as expected. Unfortunately I get the following error messages when I select the skeletonize function. ImageJ 1.51p; Java 1.8.0_141 [64-bit]; Linux 3.13.0-37-generic; 16MB of 22020MB (<1%) java.lang.NoClassDefFoundError: ij/plugin/Skeletonize3D_ (wrong name: Skeletonize3D_/Skeletonize3D_) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:763) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:467) at java.net.URLClassLoader.access$100(URLClassLoader.java:73) at java.net.URLClassLoader$1.run(URLClassLoader.java:368) at java.net.URLClassLoader$1.run(URLClassLoader.java:362) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:361) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:264) at ij.IJ.runPlugIn(IJ.java:184) at ij.Executer.runCommand(Executer.java:137) at ij.Executer.run(Executer.java:66) at java.lang.Thread.run(Thread.java:748) I am not sure if my syntax is incorrect in IJProperties.txt or if I need to do more than just drop a class file in the ij.jar plugin folder or both. I am not a java person. Any assistance or pointers to documentation would be much appreciated. Thank you, Dan -- ImageJ mailing list: http://imagej.nih.gov/ij/list.html |
Hi Dan,
Before we dive into technical details: could you describe why you want to do this? What is your use case? Are you trying to make an "uber-JAR" [1]? If so, why? Regards, Curtis [1] https://imagej.net/Uber-JAR -- Curtis Rueden LOCI software architect - https://loci.wisc.edu/software ImageJ2 lead, Fiji maintainer - https://imagej.net/User:Rueden Did you know ImageJ has a forum? http://forum.imagej.net/ On Fri, Apr 20, 2018 at 2:16 PM, Dan McDonald <mcdonalddw@ phenotypescreening.com> wrote: > Dear List, > > > > I would like to incorporate the Skeletonize (2D/3D) plugin into the ij.jar > file. I have been unsuccessful in finding a way to do so. > > > > I have the Skeletonize (2D/3D) executable jar file located in my plugin > folder. I successfully run the plugin on a daily basis when I use ImageJ. > I cannot figure out how to add a plugin that is in my plugin folder to the > ij.jar. > > > > I have "uncompressed" the ij.jar and placed the Skeletonize3D.class file in > the jar's plugin folder. I then went into the IJ Properties.txt file and > modified it to add Skeletonize (2D/3D) as a user plugin. As shown below: > > > > # Install user plugins located in ij.jar to Plugins>User Plugins submenu > > > > user_plugins01="Skeletonize (2D/3D)",ij.plugin.Skeletonize3D_ > > > > (I am not sure what the arguments above are supposed to be. I could not > find documentation on adding user plugins via the IJProperties.txt route. > What I did looked the closest to want other lines had in them.) > > > > I then rezipped everything. > > > > When next I startup ImageJ the plugin shows up on the user plugin menu as > expected. > > > > Unfortunately I get the following error messages when I select the > skeletonize function. > > > > ImageJ 1.51p; Java 1.8.0_141 [64-bit]; Linux 3.13.0-37-generic; 16MB of > 22020MB (<1%) > > java.lang.NoClassDefFoundError: ij/plugin/Skeletonize3D_ (wrong name: > Skeletonize3D_/Skeletonize3D_) > > at java.lang.ClassLoader.defineClass1(Native Method) > > at java.lang.ClassLoader.defineClass(ClassLoader.java:763) > > at > java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) > > at > java.net.URLClassLoader.defineClass(URLClassLoader.java:467) > > at java.net.URLClassLoader.access > $100(URLClassLoader.java:73) > > at java.net.URLClassLoader$1.run(URLClassLoader.java:368) > > at java.net.URLClassLoader$1.run(URLClassLoader.java:362) > > at java.security.AccessController.doPrivileged(Native > Method) > > at java.net.URLClassLoader.findCl > ass(URLClassLoader.java:361) > > at java.lang.ClassLoader.loadClass(ClassLoader.java:424) > > at > sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) > > at java.lang.ClassLoader.loadClass(ClassLoader.java:357) > > at java.lang.Class.forName0(Native Method) > > at java.lang.Class.forName(Class.java:264) > > at ij.IJ.runPlugIn(IJ.java:184) > > at ij.Executer.runCommand(Executer.java:137) > > at ij.Executer.run(Executer.java:66) > > at java.lang.Thread.run(Thread.java:748) > > > > I am not sure if my syntax is incorrect in IJProperties.txt or if I need to > do more than just drop a class file in the ij.jar plugin folder or both. > > > > I am not a java person. Any assistance or pointers to documentation would > be much appreciated. > > > > Thank you, > > > > Dan > > > > > > > > > -- > ImageJ mailing list: http://imagej.nih.gov/ij/list.html > -- ImageJ mailing list: http://imagej.nih.gov/ij/list.html |
Hi Curtis,
I have a java application which runs ImageJ in a headless mode. I wrote all of the ImageJ macro code but not the java application itself. ImageJ was bundled with an older version of skeletonize. This ran just fine in my application. I get improved performance with Ignacio's new version. I have used NetBeans to make simple changes to the Java application. I thought adding the Skeletonize3D plugin to the ImageJ internal plugins would be simple. But I just don't know enough to make it work. Dan -----Original Message----- From: ImageJ Interest Group [mailto:[hidden email]] On Behalf Of Curtis Rueden Sent: Friday, April 20, 2018 4:19 PM To: [hidden email] Subject: Re: Incorporating a plugin into the ij.jar file Hi Dan, Before we dive into technical details: could you describe why you want to do this? What is your use case? Are you trying to make an "uber-JAR" [1]? If so, why? Regards, Curtis [1] https://imagej.net/Uber-JAR -- Curtis Rueden LOCI software architect - https://loci.wisc.edu/software ImageJ2 lead, Fiji maintainer - https://imagej.net/User:Rueden Did you know ImageJ has a forum? http://forum.imagej.net/ On Fri, Apr 20, 2018 at 2:16 PM, Dan McDonald <mcdonalddw@ phenotypescreening.com> wrote: > Dear List, > > > > I would like to incorporate the Skeletonize (2D/3D) plugin into the ij.jar > file. I have been unsuccessful in finding a way to do so. > > > > I have the Skeletonize (2D/3D) executable jar file located in my plugin > folder. I successfully run the plugin on a daily basis when I use ImageJ. > I cannot figure out how to add a plugin that is in my plugin folder to the > ij.jar. > > > > I have "uncompressed" the ij.jar and placed the Skeletonize3D.class file in > the jar's plugin folder. I then went into the IJ Properties.txt file and > modified it to add Skeletonize (2D/3D) as a user plugin. As shown below: > > > > # Install user plugins located in ij.jar to Plugins>User Plugins submenu > > > > user_plugins01="Skeletonize (2D/3D)",ij.plugin.Skeletonize3D_ > > > > (I am not sure what the arguments above are supposed to be. I could not > find documentation on adding user plugins via the IJProperties.txt route. > What I did looked the closest to want other lines had in them.) > > > > I then rezipped everything. > > > > When next I startup ImageJ the plugin shows up on the user plugin menu as > expected. > > > > Unfortunately I get the following error messages when I select the > skeletonize function. > > > > ImageJ 1.51p; Java 1.8.0_141 [64-bit]; Linux 3.13.0-37-generic; 16MB of > 22020MB (<1%) > > java.lang.NoClassDefFoundError: ij/plugin/Skeletonize3D_ (wrong name: > Skeletonize3D_/Skeletonize3D_) > > at java.lang.ClassLoader.defineClass1(Native Method) > > at java.lang.ClassLoader.defineClass(ClassLoader.java:763) > > at > java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) > > at > java.net.URLClassLoader.defineClass(URLClassLoader.java:467) > > at java.net.URLClassLoader.access > $100(URLClassLoader.java:73) > > at java.net.URLClassLoader$1.run(URLClassLoader.java:368) > > at java.net.URLClassLoader$1.run(URLClassLoader.java:362) > > at java.security.AccessController.doPrivileged(Native > Method) > > at java.net.URLClassLoader.findCl > ass(URLClassLoader.java:361) > > at java.lang.ClassLoader.loadClass(ClassLoader.java:424) > > at > sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) > > at java.lang.ClassLoader.loadClass(ClassLoader.java:357) > > at java.lang.Class.forName0(Native Method) > > at java.lang.Class.forName(Class.java:264) > > at ij.IJ.runPlugIn(IJ.java:184) > > at ij.Executer.runCommand(Executer.java:137) > > at ij.Executer.run(Executer.java:66) > > at java.lang.Thread.run(Thread.java:748) > > > > I am not sure if my syntax is incorrect in IJProperties.txt or if I need to > do more than just drop a class file in the ij.jar plugin folder or both. > > > > I am not a java person. Any assistance or pointers to documentation would > be much appreciated. > > > > Thank you, > > > > Dan > > > > > > > > > -- > ImageJ mailing list: http://imagej.nih.gov/ij/list.html > -- ImageJ mailing list: http://imagej.nih.gov/ij/list.html -- ImageJ mailing list: http://imagej.nih.gov/ij/list.html |
In reply to this post by ctrueden
Hi Dan,
Thanks for the additional details. If I understand correctly, you are talking about using this project: Plugins>Skeleton, "Skeletonize (2D/3D)" sc.fiji.skeletonize3D.Skeletonize3D_ https://github.com/fiji/Skeletonize3D In lieu of ImageJ1's built-in: Process>Binary>Skeletonize ij.plugin.filter.Binary("skel") If so, why not simply depend on the Skeletonize3D_.jar library in addition to ij.jar? Why do you need to create a modified ij.jar? Is your application code published anywhere? Regards, Curtis -- Curtis Rueden LOCI software architect - https://loci.wisc.edu/software ImageJ2 lead, Fiji maintainer - https://imagej.net/User:Rueden Did you know ImageJ has a forum? http://forum.imagej.net/ On Fri, Apr 20, 2018 at 4:16 PM, Dan McDonald < [hidden email]> wrote: > Hi Curtis, > > I have a java application which runs ImageJ in a headless mode. I wrote > all of the ImageJ macro code but not the java application itself. ImageJ > was bundled with an older version of skeletonize. This ran just fine in my > application. I get improved performance with Ignacio's new version. > > I have used NetBeans to make simple changes to the Java application. I > thought adding the Skeletonize3D plugin to the ImageJ internal plugins > would be simple. But I just don't know enough to make it work. > > Dan > > -----Original Message----- > From: ImageJ Interest Group [mailto:[hidden email]] On Behalf Of > Curtis Rueden > Sent: Friday, April 20, 2018 4:19 PM > To: [hidden email] > Subject: Re: Incorporating a plugin into the ij.jar file > > Hi Dan, > > Before we dive into technical details: could you describe why you want to > do this? What is your use case? Are you trying to make an "uber-JAR" [1]? > If so, why? > > Regards, > Curtis > > [1] https://imagej.net/Uber-JAR > > -- > Curtis Rueden > LOCI software architect - https://loci.wisc.edu/software > ImageJ2 lead, Fiji maintainer - https://imagej.net/User:Rueden > Did you know ImageJ has a forum? http://forum.imagej.net/ > > > On Fri, Apr 20, 2018 at 2:16 PM, Dan McDonald <mcdonalddw@ > phenotypescreening.com> wrote: > > > Dear List, > > > > > > > > I would like to incorporate the Skeletonize (2D/3D) plugin into the > ij.jar > > file. I have been unsuccessful in finding a way to do so. > > > > > > > > I have the Skeletonize (2D/3D) executable jar file located in my plugin > > folder. I successfully run the plugin on a daily basis when I use > ImageJ. > > I cannot figure out how to add a plugin that is in my plugin folder to > the > > ij.jar. > > > > > > > > I have "uncompressed" the ij.jar and placed the Skeletonize3D.class file > in > > the jar's plugin folder. I then went into the IJ Properties.txt file and > > modified it to add Skeletonize (2D/3D) as a user plugin. As shown below: > > > > > > > > # Install user plugins located in ij.jar to Plugins>User Plugins submenu > > > > > > > > user_plugins01="Skeletonize (2D/3D)",ij.plugin.Skeletonize3D_ > > > > > > > > (I am not sure what the arguments above are supposed to be. I could not > > find documentation on adding user plugins via the IJProperties.txt route. > > What I did looked the closest to want other lines had in them.) > > > > > > > > I then rezipped everything. > > > > > > > > When next I startup ImageJ the plugin shows up on the user plugin menu as > > expected. > > > > > > > > Unfortunately I get the following error messages when I select the > > skeletonize function. > > > > > > > > ImageJ 1.51p; Java 1.8.0_141 [64-bit]; Linux 3.13.0-37-generic; 16MB of > > 22020MB (<1%) > > > > java.lang.NoClassDefFoundError: ij/plugin/Skeletonize3D_ (wrong name: > > Skeletonize3D_/Skeletonize3D_) > > > > at java.lang.ClassLoader.defineClass1(Native Method) > > > > at java.lang.ClassLoader.defineClass(ClassLoader.java: > 763) > > > > at > > java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) > > > > at > > java.net.URLClassLoader.defineClass(URLClassLoader.java:467) > > > > at java.net.URLClassLoader.access > > $100(URLClassLoader.java:73) > > > > at java.net.URLClassLoader$1.run(URLClassLoader.java:368) > > > > at java.net.URLClassLoader$1.run(URLClassLoader.java:362) > > > > at java.security.AccessController.doPrivileged(Native > > Method) > > > > at java.net.URLClassLoader.findCl > > ass(URLClassLoader.java:361) > > > > at java.lang.ClassLoader.loadClass(ClassLoader.java:424) > > > > at > > sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) > > > > at java.lang.ClassLoader.loadClass(ClassLoader.java:357) > > > > at java.lang.Class.forName0(Native Method) > > > > at java.lang.Class.forName(Class.java:264) > > > > at ij.IJ.runPlugIn(IJ.java:184) > > > > at ij.Executer.runCommand(Executer.java:137) > > > > at ij.Executer.run(Executer.java:66) > > > > at java.lang.Thread.run(Thread.java:748) > > > > > > > > I am not sure if my syntax is incorrect in IJProperties.txt or if I need > to > > do more than just drop a class file in the ij.jar plugin folder or both. > > > > > > > > I am not a java person. Any assistance or pointers to documentation > would > > be much appreciated. > > > > > > > > Thank you, > > > > > > > > Dan > > > > > > > > > > > > > > > > > > -- > > ImageJ mailing list: http://imagej.nih.gov/ij/list.html > > > > -- > ImageJ mailing list: http://imagej.nih.gov/ij/list.html > > -- > ImageJ mailing list: http://imagej.nih.gov/ij/list.html > -- ImageJ mailing list: http://imagej.nih.gov/ij/list.html |
Hi Curtis,
Thank you for the reply. I believe I had a faulty mental model of how to approach my goal. You have helped me understand that I am dealing with a java issue and not an ImageJ issue. Best regards, Dan -----Original Message----- From: ImageJ Interest Group [mailto:[hidden email]] On Behalf Of Curtis Rueden Sent: Friday, April 20, 2018 5:33 PM To: [hidden email] Subject: Re: Incorporating a plugin into the ij.jar file Hi Dan, Thanks for the additional details. If I understand correctly, you are talking about using this project: Plugins>Skeleton, "Skeletonize (2D/3D)" sc.fiji.skeletonize3D.Skeletonize3D_ https://github.com/fiji/Skeletonize3D In lieu of ImageJ1's built-in: Process>Binary>Skeletonize ij.plugin.filter.Binary("skel") If so, why not simply depend on the Skeletonize3D_.jar library in addition to ij.jar? Why do you need to create a modified ij.jar? Is your application code published anywhere? Regards, Curtis -- Curtis Rueden LOCI software architect - https://loci.wisc.edu/software ImageJ2 lead, Fiji maintainer - https://imagej.net/User:Rueden Did you know ImageJ has a forum? http://forum.imagej.net/ On Fri, Apr 20, 2018 at 4:16 PM, Dan McDonald < [hidden email]> wrote: > Hi Curtis, > > I have a java application which runs ImageJ in a headless mode. I wrote > all of the ImageJ macro code but not the java application itself. ImageJ > was bundled with an older version of skeletonize. This ran just fine in my > application. I get improved performance with Ignacio's new version. > > I have used NetBeans to make simple changes to the Java application. I > thought adding the Skeletonize3D plugin to the ImageJ internal plugins > would be simple. But I just don't know enough to make it work. > > Dan > > -----Original Message----- > From: ImageJ Interest Group [mailto:[hidden email]] On Behalf Of > Curtis Rueden > Sent: Friday, April 20, 2018 4:19 PM > To: [hidden email] > Subject: Re: Incorporating a plugin into the ij.jar file > > Hi Dan, > > Before we dive into technical details: could you describe why you want to > do this? What is your use case? Are you trying to make an "uber-JAR" [1]? > If so, why? > > Regards, > Curtis > > [1] https://imagej.net/Uber-JAR > > -- > Curtis Rueden > LOCI software architect - https://loci.wisc.edu/software > ImageJ2 lead, Fiji maintainer - https://imagej.net/User:Rueden > Did you know ImageJ has a forum? http://forum.imagej.net/ > > > On Fri, Apr 20, 2018 at 2:16 PM, Dan McDonald <mcdonalddw@ > phenotypescreening.com> wrote: > > > Dear List, > > > > > > > > I would like to incorporate the Skeletonize (2D/3D) plugin into the > ij.jar > > file. I have been unsuccessful in finding a way to do so. > > > > > > > > I have the Skeletonize (2D/3D) executable jar file located in my plugin > > folder. I successfully run the plugin on a daily basis when I use > ImageJ. > > I cannot figure out how to add a plugin that is in my plugin folder to > the > > ij.jar. > > > > > > > > I have "uncompressed" the ij.jar and placed the Skeletonize3D.class file > in > > the jar's plugin folder. I then went into the IJ Properties.txt file and > > modified it to add Skeletonize (2D/3D) as a user plugin. As shown below: > > > > > > > > # Install user plugins located in ij.jar to Plugins>User Plugins submenu > > > > > > > > user_plugins01="Skeletonize (2D/3D)",ij.plugin.Skeletonize3D_ > > > > > > > > (I am not sure what the arguments above are supposed to be. I could not > > find documentation on adding user plugins via the IJProperties.txt route. > > What I did looked the closest to want other lines had in them.) > > > > > > > > I then rezipped everything. > > > > > > > > When next I startup ImageJ the plugin shows up on the user plugin menu as > > expected. > > > > > > > > Unfortunately I get the following error messages when I select the > > skeletonize function. > > > > > > > > ImageJ 1.51p; Java 1.8.0_141 [64-bit]; Linux 3.13.0-37-generic; 16MB of > > 22020MB (<1%) > > > > java.lang.NoClassDefFoundError: ij/plugin/Skeletonize3D_ (wrong name: > > Skeletonize3D_/Skeletonize3D_) > > > > at java.lang.ClassLoader.defineClass1(Native Method) > > > > at java.lang.ClassLoader.defineClass(ClassLoader.java: > 763) > > > > at > > java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) > > > > at > > java.net.URLClassLoader.defineClass(URLClassLoader.java:467) > > > > at java.net.URLClassLoader.access > > $100(URLClassLoader.java:73) > > > > at java.net.URLClassLoader$1.run(URLClassLoader.java:368) > > > > at java.net.URLClassLoader$1.run(URLClassLoader.java:362) > > > > at java.security.AccessController.doPrivileged(Native > > Method) > > > > at java.net.URLClassLoader.findCl > > ass(URLClassLoader.java:361) > > > > at java.lang.ClassLoader.loadClass(ClassLoader.java:424) > > > > at > > sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) > > > > at java.lang.ClassLoader.loadClass(ClassLoader.java:357) > > > > at java.lang.Class.forName0(Native Method) > > > > at java.lang.Class.forName(Class.java:264) > > > > at ij.IJ.runPlugIn(IJ.java:184) > > > > at ij.Executer.runCommand(Executer.java:137) > > > > at ij.Executer.run(Executer.java:66) > > > > at java.lang.Thread.run(Thread.java:748) > > > > > > > > I am not sure if my syntax is incorrect in IJProperties.txt or if I need > to > > do more than just drop a class file in the ij.jar plugin folder or both. > > > > > > > > I am not a java person. Any assistance or pointers to documentation > would > > be much appreciated. > > > > > > > > Thank you, > > > > > > > > Dan > > > > > > > > > > > > > > > > > > -- > > ImageJ mailing list: http://imagej.nih.gov/ij/list.html > > > > -- > ImageJ mailing list: http://imagej.nih.gov/ij/list.html > > -- > ImageJ mailing list: http://imagej.nih.gov/ij/list.html > -- ImageJ mailing list: http://imagej.nih.gov/ij/list.html -- ImageJ mailing list: http://imagej.nih.gov/ij/list.html |
Free forum by Nabble | Edit this page |