Getting the Netbeans JFrame to build and run: pommel problems

maven
netbeans
pom
mac-os
Tags: #<Tag:0x00007fb883f90ea0> #<Tag:0x00007fb883f90950> #<Tag:0x00007fb883f8fca8> #<Tag:0x00007fb883f8f3e8>

#1

I get an error when I try to build my project, and I cannot get the GUI (JFrame) to appear. Here is the build error and the pom file. I don’t know what the “list of direct or transitive dependencies” is or how to correct the error. Any help would be greatly appreciated.

The build error is:

build error messages:
--- maven-clean-plugin:3.0.0:clean (default-clean) @ ImageJStubProject ---

--- maven-enforcer-plugin:1.4.1:enforce (enforce-rules) @ ImageJStubProject ---
Rule 6: org.apache.maven.plugins.enforcer.BanCircularDependencies failed with message:
Circular Dependency found. Your project's groupId:artifactId combination must not exist in the list of direct or transitive dependencies.
  cz.cuni.lf1:ImageJStubProject
 
------------------------------------------------------------------------
BUILD FAILURE
------------------------------------------------------------------------
Total time: 4.509s
Finished at: Thu Mar 16 09:59:55 PDT 2017
Final Memory: 12M/227M
------------------------------------------------------------------------
Failed to execute goal org.apache.maven.plugins:maven-enforcer-plugin:1.4.1:enforce (enforce-rules) on project ImageJStubProject: Some Enforcer rules have failed. Look above for specific messages explaining why the rule failed. -> [Help 1]

I think my pom.xml file is a mess, but I don’t have a clear idea on how to fix it. This is the pom.xml file:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
		http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<parent>
		<groupId>org.scijava</groupId>
		<artifactId>pom-scijava</artifactId>
		<version>14.0.0</version>
		<relativePath />
	</parent>

	<groupId>cz.cuni.lf1</groupId>
	<artifactId>ImageJStubProject</artifactId>
	<version>0.1.0-SNAPSHOT</version>

	<name>RoA_</name>
	<description>plugin for Martin Braekevelt</description>
	<url>maven.apache.org</url>
	<inceptionYear>2017</inceptionYear>
	<organization>
		<name>GAIAG</name>
		<url>http://gaiag.net/</url>
	</organization>
	<licenses>
		<license>
			<name>Simplified BSD License</name>
			<distribution>repo</distribution>
		</license>
	</licenses>

	<developers>
		<developer>
			<id>cchristophercoulon</id>
			<name>Christopher Coulon</name>
			<url>http://imagej.net/User:Rueden</url>
			<roles>
				<role>lead</role>
				<role>developer</role>
				<role>debugger</role>
				<role>reviewer</role>
				<role>support</role>
				<role>maintainer</role>
			</roles>
		</developer>
	</developers>
	<contributors>
		<contributor>
			<name>Johannes Schindelin</name>
			<url>http://imagej.net/User:Schindelin</url>
			<roles><role>founder</role></roles>
			<properties><id>dscho</id></properties>
		</contributor>
		<contributor>
			<name>Olivier Burri</name>
			<url>http://imagej.net/User:Oburri</url>
			<properties><id>lacan</id></properties>
		</contributor>
		<contributor>
			<name>Mark Hiner</name>
			<url>http://imagej.net/User:Hinerm</url>
			<properties><id>hinerm</id></properties>
		</contributor>
		<contributor>
			<name>Jules Maselbas</name>
		</contributor>
		<contributor>
			<name>Kota Miura</name>
			<url>http://imagej.net/User:Miura</url>
			<properties><id>cmci</id></properties>
		</contributor>
		<contributor>
			<name>Yili Zhao</name>
			<url>http://imagej.net/User:Panovr</url>
			<properties><id>panovr</id></properties>
		</contributor>
	</contributors>

	<mailingLists>
		<mailingList>
			<name>ImageJ Forum</name>
			<archive>http://forum.imagej.net/</archive>
		</mailingList>
	</mailingLists>

	<scm>
		<connection>scm:git:git://github.com/imagej/example-legacy-plugin</connection>
		<developerConnection>scm:git:git@github.com:imagej/example-legacy-plugin</developerConnection>
		<tag>HEAD</tag>
		<url>https://github.com/imagej/example-legacy-plugin</url>
	</scm>
	<issueManagement>
		<system>GitHub Issues</system>
		<url>https://github.com/imagej/example-legacy-plugin/issues</url>
	</issueManagement>
	<ciManagement>
		<system>None</system>
	</ciManagement>

	<properties>
		<package-name>RoA_</package-name>
		<main-class>RoA_.Run_RoA_</main-class>
		<license.licenseName>bsd_2</license.licenseName>
		<license.copyrightOwners>The GAIA Group</license.copyrightOwners>
	</properties>

	<dependencies>
		<dependency>
			<groupId>cz.cuni.lf1</groupId>
			<artifactId>ImageJStubProject</artifactId>
                        <version>1.0-SNAPSHOT</version>
		 <type>jar</type>
		</dependency>
	 <dependency>
	  <groupId>gov.nih.imagej</groupId>
	  <artifactId>imagej</artifactId>
	  <version>1.47</version>
	  <type>jar</type>
	 </dependency>
	</dependencies>
        
        <build>
            <plugins>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>exec-maven-plugin</artifactId>
                    <executions>
                        <execution>
                            <goals>
                                <goal>java</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <mainClass>Run_RoA_</mainClass>
                    </configuration>
                </plugin>
            </plugins>
        </build>
</project>

#2

I can get the project to build and run with this pom.xml; it displays an instance of ImageJ, but the JFrame does not appear. This is the debug file after the debug:

JPDA Listening Start...
JPDA Address: GAIAGtravel.local:60834
Port:60834
cd /Users/chris/NetBeansProjects/Roa-plugin; JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home "/Applications/NetBeans/NetBeans 8.2.app/Contents/Resources/NetBeans/java/maven/bin/mvn" "-Dexec.args=-Xdebug -Xrunjdwp:transport=dt_socket,server=n,address=60834 -classpath %classpath com.mycompany.imagej.RoA_" -Dexec.executable=/Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home/bin/java -Djpda.listen=true -Djpda.address=60834 org.codehaus.mojo:exec-maven-plugin:1.2.1:exec
Running NetBeans Compile On Save execution. Phase execution is skipped and output directories of dependency projects (with Compile on Save turned on) will be used instead of their jar artifacts.
Scanning for projects...
                                                                        
------------------------------------------------------------------------
Building RoA_ 0.1.0-SNAPSHOT
------------------------------------------------------------------------

--- exec-maven-plugin:1.2.1:exec (default-cli) @ RoA_ ---
------------------------------------------------------------------------
BUILD SUCCESS
------------------------------------------------------------------------
Total time: 41.664s
Finished at: Thu Mar 16 12:51:28 PDT 2017
Final Memory: 7M/155M
------------------------------------------------------------------------

and this is the current pom.xml file:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
		http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<parent>
		<groupId>org.scijava</groupId>
		<artifactId>pom-scijava</artifactId>
		<version>12.0.0</version>
		<relativePath />
	</parent>

	<groupId>com.mycompany</groupId>
	<artifactId>RoA_</artifactId>
	<version>0.1.0-SNAPSHOT</version>

	<name>RoA_</name>
	<description>A Maven project implementing an ImageJ 1.x plugin.</description>
	<url>http://mycompany.com/imagej/RoA_/</url>
	<inceptionYear>2012</inceptionYear>
	<organization>
		<name>My Company</name>
		<url>http://mycompany.com/</url>
	</organization>
	<licenses>
		<license>
			<name>Simplified BSD License</name>
			<distribution>repo</distribution>
		</license>
	</licenses>

	<developers>
		<developer>
			<id>ctrueden</id>
			<name>Curtis Rueden</name>
			<url>http://imagej.net/User:Rueden</url>
			<roles>
				<role>lead</role>
				<role>developer</role>
				<role>debugger</role>
				<role>reviewer</role>
				<role>support</role>
				<role>maintainer</role>
			</roles>
		</developer>
	</developers>
	<contributors>
		<contributor>
			<name>Johannes Schindelin</name>
			<url>http://imagej.net/User:Schindelin</url>
			<roles><role>founder</role></roles>
			<properties><id>dscho</id></properties>
		</contributor>
		<contributor>
			<name>Olivier Burri</name>
			<url>http://imagej.net/User:Oburri</url>
			<properties><id>lacan</id></properties>
		</contributor>
		<contributor>
			<name>Mark Hiner</name>
			<url>http://imagej.net/User:Hinerm</url>
			<properties><id>hinerm</id></properties>
		</contributor>
		<contributor>
			<name>Jules Maselbas</name>
		</contributor>
		<contributor>
			<name>Kota Miura</name>
			<url>http://imagej.net/User:Miura</url>
			<properties><id>cmci</id></properties>
		</contributor>
		<contributor>
			<name>Yili Zhao</name>
			<url>http://imagej.net/User:Panovr</url>
			<properties><id>panovr</id></properties>
		</contributor>
	</contributors>

	<mailingLists>
		<mailingList>
			<name>ImageJ Forum</name>
			<archive>http://forum.imagej.net/</archive>
		</mailingList>
	</mailingLists>

	<scm>
		<connection>scm:git:git://github.com/imagej/example-legacy-plugin</connection>
		<developerConnection>scm:git:git@github.com:imagej/example-legacy-plugin</developerConnection>
		<tag>HEAD</tag>
		<url>https://github.com/imagej/example-legacy-plugin</url>
	</scm>
	<issueManagement>
		<system>GitHub Issues</system>
		<url>https://github.com/imagej/example-legacy-plugin/issues</url>
	</issueManagement>
	<ciManagement>
		<system>None</system>
	</ciManagement>

	<properties>
		<package-name>com.mycompany.imagej</package-name>
		<main-class>com.mycompany.imagej.RoA_</main-class>
		<license.licenseName>bsd_2</license.licenseName>
		<license.copyrightOwners>The GAIA Group</license.copyrightOwners>
	</properties>

	<dependencies>
		<dependency>
			<groupId>net.imagej</groupId>
			<artifactId>ij</artifactId>
		</dependency>
	</dependencies>
</project>

#3

Hi Christopher,

The circular dependency in the first POM file is caused by you declaring a dependency on your own project. Dependencies should list all the libraries your project depends on. For example, if you depended on the scijava-common package, you’d add a dependency

<dependency>
   <groupId>org.scijava</groupId>
   <artifactId>scijava-common</artifactId>
</dependency>

Whether you depend on a package depends on whether you import anything from it in your classes.

I reckon in your second pom you need a dependency to imagej instead of ij. If this doesn’t help, try adding the package

        <dependency>
            <groupId>org.scijava</groupId>
            <artifactId>scijava-ui-swing</artifactId>
        </dependency>

Best regards,
Richard


#4

I think it really depends on what is being done in the source code.

@ad1054 Can you please post your .java file, or a link to it on GitHub? Since this is a fork of example-legacy-plugin, it is likely you are using only ImageJ 1.x, and hence the net.imagej:ij dependency is actually correct, no?

In general, I am curious why you are building on example-legacy-plugin instead of example-imagej-command.


#5

From a private email exchange, in which I saw the source code in question:

You cannot just call “setVisible(true)” on a JPanel. You must add that JPanel to a JFrame or JDialog (i.e., a Window subclass), and then show the window. Otherwise, nothing happens, and the program quits because there are no windows visible which keep the JVM going.

This is not an ImageJ-specific thing, but rather basic AWT/Swing. I encourage you to go through the Swing tutorial in detail: https://docs.oracle.com/javase/tutorial/uiswing/

Bingo! That is exactly what I needed! Thank you! I realize now how simple the solution was, but I don’t know enough about the elements of the GUI to realize I needed a JFrame.


#6

I am simply building where I landed when following the instructions:

Import the ImageJ source
Choose Team > Git > Clone… from the NetBeans menu
For the Repository URL, enter: git://github.com/imagej/imagej
Click Next, check the “master*” branch, then Next again, then Finish
When prompted, click Open Project…
Select the “ImageJ Projects” project in the tree then click Open
Right-click the “ImageJ Projects” project and choose Build

Please provide me with the link to GitHub, and I will upload my .java file there.


#7

@ad1054 My understanding is that the problem is now solved for you, by putting your JPanel into a JFrame and showing that frame. So maybe no more discussion here is needed?

If you decide to post a .java file to GitHub in the future, you need to either: 1) create a new repository on GitHub (see this guide); or 2) post it to a GitHub Gist (see this article for details).

Note that the point of creating a new repository is not simply to put a .java file there, but to actually house your real project in its entirety. Look at example-imagej-command et. al for examples. You can even fork them if you want, as long as you rename all the stuff in the POM to reflect your information.


#8

That was my hope, but now when I put the generated jar file into ImageJ Plugins folder, I can see the plugin under the Plugins dropdown menu, but running it gives me the error,

"Plugin or class not found: “RoA_()”
(java.lang.ClassNotFoundException: RoA_())

I also put the classes generated along with the plugins.config and the swing-layout-1.0.3.jar and created a jar file, which I put in the ImageJ Plugins folder, but got the same error.

Any hints as to why I am getting this error?


#9

This sounds like maybe a plugin.config problem? The structure for plugin.config is package.class (the main class that will be starting the plugin).

Here is an example from a plugin I’ve been working on:

Plugins, "Hough Circle Transform", Hough_Package.Hough_GUI

In this case, the class that implements PlugInFilter is the Hough_GUI class in the Hough_Package package. If the Hough_GUI class was still in the Default Package, then it would be:

Plugins, "Hough Circle Transform", Hough_GUI

You can find more info here: http://imagej.net/Description_of_ImageJ's_plugin_architecture

Also, if you are using NetBeans, then the “Team” menu will make it pretty easy to load your whole plugin project to Git Hub, and the versioning from Git is very helpful. You can also right click on your project and select the versioning option to setup a git repository.


#10

Thank you. I am already working in the Git Hub. This is my Project; I have only one class, the JFrame class with the main class.

RoA_
Source Packages

com.mycompany.imagej
RoA_.java
Test Packages
Other Sources
Dependencies
java Dependencies
Project Files
pom.xml
nbactions.xml

This is my current plugins.config file:

Plugins>Automeasure Wire, “Run the wire plugin”, com.mycompany.imagej.RoA_

but I have tried:

com.mycompany.imagej.RoA_()
and
RoA_
and
RoA_()

and still get the same result of no show. I have managed to get my plugin running as I want and it works perfectly in Netbeans, but I cannot get it to work in ImageJ as a jar file. Is there some other way to write the plugins.config file, or is the problem elsewhere?


#11

Does your main class implement plugin or pluginfilter?

Here is an example of how to structure your main class so that it can correctly communicate with FIJI:


#12

I have only one class. Here is my Package contents:

And this is the beginning of the java file:

package com.mycompany.imagej;

import ij.IJ;
import ij.ImageJ;
import ij.ImagePlus;
import ij.WindowManager;
import ij.gui.GUI;
import ij.gui.ImageWindow;
import ij.io.OpenDialog;
import ij.io.Opener;
import ij.plugin.PlugIn;
import java.io.File;
import ij.gui.Line;
import ij.measure.ResultsTable;
import ij.plugin.filter.Analyzer;
import java.math.RoundingMode;
import java.text.DecimalFormat;

public class RoA_ extends javax.swing.JFrame implements PlugIn {

I have tried every combination I can think of for my plugins.config file, e.g.:

Plugins>Automeasure Wire, "Run the wire plugin", com.mycompany.imagej.RoA_

Plugins>Automeasure Wire, "Run the wire plugin", com.mycompany.imagej.RoA_

Plugins>Automeasure Wire, "Run the wire plugin", com.mycompany.imagej.RoA_()

Plugins>Automeasure Wire, "Run the wire plugin", RoA_

Plugins>Automeasure Wire, "Run the wire plugin", RoA_()

They all run fine in Netbeans, but none work when put in ImageJ as a .jar file. Nothing shows up in the Plugins menu, despite the underscore. Netbeans generates two jar files:

RoA_-0.1.0-SNAPSHOT-sources.jar
and
RoA_-0.1.0-SNAPSHOT.jar

I’m not sure why there are two, but neither one works and both also don’t work in the ImageJ plugins folder. So I tried jar cvfM RoA_ * for all the classes, the plugins.config, and even the swing-layout-1.0.3.jar, so this is the contents of the jar file I put in ImageJ>plugins:

swing-layout-1.0.3.jar
plugins.config
RoA_.class
RoA_$1.class

RoA_$2.class

RoA_$3.class

RoA_$4.class

RoA_$5.class

That used to work for me, but I can’t get it to work now. :frowning:


#13

Wayne Rasband asked me why I used “com.mycompany.imagej” as my package, and I was unable to tell him other than it seemed to be the default for the GitHub, and I could not get any other format to run; even though I replaced all instances of “com.mycompany” in the pom.xml file, I still got run errors in Netbeans saying “com.mycompany.imagej.RoA_ cannot be found”. ??? I’m clueless. :frowning:


#14

@ad1054 If your plugin file lives in src/main/java/foo/bar/MyPlugin.java, then it must declare package foo.bar. That is, the directory structure must be src/main/java/<package-name>/<class-name>.java. And then the plugins.config needs to use that same package prefix in the plugin entry.


#15

Where do I change the directory structure from the highly nested “com.mycompany.imagej.RoA_” to “RoA.RoA_”? In the pom.xml file?

The pom.xml file contains a reference to “com.mycompany” in 4 locations:

	<groupId>com.mycompany</groupId>
	<artifactId>RoA</artifactId>
	<version>0.1.0-SNAPSHOT</version>

	<name>RoA_</name>
	<description>A Maven project implementing an ImageJ 1.x plugin.</description>
	<url>http://mycompany.com/imagej/RoA_/</url>

	<properties>
		<package-name>com.mycompany.imagej</package-name>
		<main-class>com.mycompany.imagej.RoA_</main-class>
		<license.licenseName>bsd_2</license.licenseName>
		<license.copyrightOwners>The GAIA Group</license.copyrightOwners>
	</properties>

Is this where I make the changes? And how do I do that and still get the plugin to run?

here is my pom.xml file as it is currently working in Netbeans:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
		http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<parent>
		<groupId>org.scijava</groupId>
		<artifactId>pom-scijava</artifactId>
		<version>12.0.0</version>
		<relativePath />
	</parent>

	<groupId>com.mycompany</groupId>
	<artifactId>RoA</artifactId>
	<version>0.1.0-SNAPSHOT</version>

	<name>RoA_</name>
	<description>A Maven project implementing an ImageJ 1.x plugin.</description>
	<url>http://mycompany.com/imagej/RoA_/</url>
	<inceptionYear>2012</inceptionYear>
	<organization>
		<name>The GAIA Group</name>
		<url>http://gaiag.net/</url>
	</organization>
	<licenses>
		<license>
			<name>Simplified BSD License</name>
			<distribution>repo</distribution>
		</license>
	</licenses>

	<developers>
		<developer>
			<id>ctrueden</id>
			<name>Curtis Rueden</name>
			<url>http://imagej.net/User:Rueden</url>
			<roles>
				<role>lead</role>
				<role>developer</role>
				<role>debugger</role>
				<role>reviewer</role>
				<role>support</role>
				<role>maintainer</role>
			</roles>
		</developer>
	</developers>
	<contributors>
		<contributor>
			<name>Johannes Schindelin</name>
			<url>http://imagej.net/User:Schindelin</url>
			<roles><role>founder</role></roles>
			<properties><id>dscho</id></properties>
		</contributor>
		<contributor>
			<name>Olivier Burri</name>
			<url>http://imagej.net/User:Oburri</url>
			<properties><id>lacan</id></properties>
		</contributor>
		<contributor>
			<name>Mark Hiner</name>
			<url>http://imagej.net/User:Hinerm</url>
			<properties><id>hinerm</id></properties>
		</contributor>
		<contributor>
			<name>Jules Maselbas</name>
		</contributor>
		<contributor>
			<name>Kota Miura</name>
			<url>http://imagej.net/User:Miura</url>
			<properties><id>cmci</id></properties>
		</contributor>
		<contributor>
			<name>Yili Zhao</name>
			<url>http://imagej.net/User:Panovr</url>
			<properties><id>panovr</id></properties>
		</contributor>
	</contributors>

	<mailingLists>
		<mailingList>
			<name>ImageJ Forum</name>
			<archive>http://forum.imagej.net/</archive>
		</mailingList>
	</mailingLists>

	<scm>
		<connection>scm:git:git://github.com/imagej/example-legacy-plugin</connection>
		<developerConnection>scm:git:git@github.com:imagej/example-legacy-plugin</developerConnection>
		<tag>HEAD</tag>
		<url>https://github.com/imagej/example-legacy-plugin</url>
	</scm>
	<issueManagement>
		<system>GitHub Issues</system>
		<url>https://github.com/imagej/example-legacy-plugin/issues</url>
	</issueManagement>
	<ciManagement>
		<system>None</system>
	</ciManagement>

	<properties>
		<package-name>com.mycompany.imagej</package-name>
		<main-class>com.mycompany.imagej.RoA_</main-class>
		<license.licenseName>bsd_2</license.licenseName>
		<license.copyrightOwners>The GAIA Group</license.copyrightOwners>
	</properties>

	<dependencies>
		<dependency>
			<groupId>net.imagej</groupId>
			<artifactId>ij</artifactId>
		</dependency>
	</dependencies>
</project>

#16

My project generates two .jar files:

Which one should go in the ImageJ>plugins folder? Or both?


#17

Why not simply replace all com.mycompany references with your own group’s prefix net.gaiag, using the same number of levels of nesting? This will make the minimal changes, going from working state to working state, and is best practice for naming. Using RoA as your package name is not best practice. If you did this, you could rename the com folder to net and the mycompany folder to gaiag, the imagej folder to roa, and change the package in the source file to net.gaiag.roa.


#18

OK, I made all the suggested changes and got an error that the com.mycompany.imagej.RoA_ could not be found, so I saw the only other reference to “com.mycompany.imagej” in the nbactions.xml file, so I changed all the references there to “net.gaiag.roa” and that worked.

However, the insurmountable problem is that I cannot get the jar file to work in ImageJ. I changed the version to “1” instead of “0.1.0-SNAPSHOT”. Now my project looks like this:

This builds and runs, but still the jar file in the Target folder, RoA-1.jar, does not show up in the ImageJ Plugins drop down menu when placed in the plugins folder and restarted. So I tried a test by putting the jar_demo.jar into the plugins folder, but it too does not show up in the plugins drop down menu. This is the plugins folder contents:

and this is the ImageJ>plugins drop down menu:

Something seems to be wrong with the ImageJ on my computer (Macintosh MacBook Pro 13 inch Retina Display v. 10.12.3).


#19
  • Make sure your JAR file has an underscore in the name.
  • Make sure the plugins.config points to the correct fully qualified class.
  • Make sure your plugins.dir is set properly. How are you launching ImageJ? From a main method in NetBeans? Or by double-clicking on ImageJ.app?

#20

OK, problem solved! Wayne Rasband came up with the solution – I would never have found it on my own! :slight_smile:

Here is his solution to not being able to install a plugin:

If you are running macOS Sierra you probably ran into Apple’s dreaded Path Randomization “feature”.

MacOS 10.12 (Sierra) introduces a security feature called Path Randomization that can cause ImageJ to not work as expected. Path randomization is in effect if the “ImageJ home” path shown in the Image>Show Info window starts with “/private” and plugins are not installed in the Plugins menu. You can disable path randomization by moving ImageJ.app out of the ImageJ folder and then copying it back. If the ImageJ folder is in /Applications you will need to hold down the alt key while dragging ImageJ.app out of the ImageJ folder.

-wayne

Although the ImageJ folder is in the Applications folder, I simply dragged it out of the ImageJ folder into the Applications folder, then dragged it back without holding down the alt key, and that worked to install all my plugins. :slight_smile: