ImageJ插件开发和NetBeans IDE

时间:2012-12-14 12:43:15

标签: plugins netbeans imagej

您能帮助我使用NetBeans IDE设置ImageJ插件开发吗? 我试过现有的项目,但有两个问题: - Java Free form porject:我无法在这个项目中附加onvif.xsd。 - 我正在尝试这个教程:tutorial但是在netbeans 7.2.1中我不能这样做:“转到Build> Compile”(你的插件名称)“”

请给我建议!

1 个答案:

答案 0 :(得分:1)

我正在使用Maven在NetBeans中开发ImageJ插件。我将展示如何创建和调试一个简单的插件。

您可以先创建一个新的Maven项目File->New Project->Maven->Java Application并创建一个简单的PlugIn类:

package cz.cuni.lf1.imagejstubproject;
import ij.IJ;
import ij.plugin.PlugIn;
public class Hello implements PlugIn {
  public void run(String arg) {
    IJ.showMessage("My_Plugin", "Hello world!");
  }
}

现在使用content:

在文件src / main / resources中创建一个plugins.config文件
Plugins, "Hello World!", cz.cuni.lf1.imagejstubproject.Hello

第一个String是插件出现的菜单文件夹,第二个是菜单标签,第三个是单击菜单项时要运行的类的完整类名。

下一步是向包含ImageJ类的ij.jar添加依赖项。这可以通过编辑pom.xml文件并添加:

来完成
<project>
  ...
  <build>
   ...
  </build>
  <dependencies>
    <dependency>
      <groupId>gov.nih.imagej</groupId>
      <artifactId>imagej</artifactId>
      <version>1.45</version>
      <scope>provided</scope>
    </dependency>
  </dependencies>
</project>

在构建过程中,Maven将自动从Internet下载所需的库。它还可以下载源代码和JavaDoc。

ImageJ要求最终jar的名称包含下划线,因此我们相应地设置文件名。将pom.xml更改为包含以下内容:

<project>
...
  <build>
    <finalName>${project.artifactId}_${project.version}</finalName>
    ...
  </build>
  ...
</project>

这就是构建ImageJ插件所需的全部内容。如果你编译它并将jar复制到ImageJ插件目录,你应该在ImageJ插件菜单中看到你的插件。如果您不想在Netbeans中调试插件,可以在这里停止。

我想在Netbeans中编译它时将新jar复制到ImageJ插件文件​​夹,这样我就可以快速尝试一下。您甚至不必重新启动ImageJ来运行新插件。只需单击ImageJ中的帮助 - >刷新菜单即可重新加载插件。要将插件复制到comile上的ImageJ文件夹,请编辑pom.xml以包含:

<project>
  ...
  <properties>
   <imagej.path>c:\Program Files (x86)\ImageJ</imagej.path>
  </properties>
  <build>
    <finalName>${project.artifactId}_${project.version}</finalName>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-antrun-plugin</artifactId>
        <executions>
          <execution>
            <id>copytoplugins</id>
            <phase>install</phase>
            <goals>
              <goal>run</goal>
            </goals>
            <configuration>
              <tasks>
                <copy todir="${imagej.path}/plugins/" file="target/${project.build.finalName}.jar"/>
              </tasks>
            </configuration>
          </execution>
        </executions>
      </plugin>
      ...
    </plugins>
  </build>
  ...
</project>

编辑imagej.path属性以指向您的ImageJ安装文件夹(而不是插件文件夹)。现在你的插件应该被复制到每个版本的plugins文件夹中。

为了能够从Netbeans调试插件,请将其添加到您的pom.xml:

<project> 
  ...   
  <build>
    <finalName>${project.artifactId}_${project.version}</finalName>
    <plugins>
      ...
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>exec-maven-plugin</artifactId>
        <version>1.2</version>
        <executions>
          <execution>
            <goals>
              <goal>exec</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <executable>java</executable>
          <commandlineArgs>-jar     -agentlib:jdwp=transport=dt_socket,server=n,address=${jpda.address} "${imagej.path}/ij.jar"    </commandlineArgs>
          <workingDirectory>${imagej.path}</workingDirectory>
        </configuration>
      </plugin>
    </plugins>
  </build>
  ...
</project>

然后右键单击您的项目并选择属性。在Actions选项卡中,将Debug Project操作编辑为:

  • 执行目标:process-classes org.codehaus.mojo:exec-maven-plugin:1.2:exec
  • 激活个人资料:
  • 设置属性:jpda.listen=true

现在,当您单击NetBeans ImageJ中的调试项目时,您应该可以调试插件。

您可以下载此示例插件here