Login  Register

Incorporating a plugin into the ij.jar file

Posted by Dan McDonald on Apr 20, 2018; 7:16pm
URL: http://imagej.273.s1.nabble.com/Incorporating-a-plugin-into-the-ij-jar-file-tp5020540.html

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