1

你能帮我用 NetBeans IDE 设置 ImageJ 插件开发吗?我尝试使用现有项目,但有两个问题: - Java 自由格式项目:我无法在该项目中附加 onvif.xsd。- 我正在尝试本教程:教程但在 netbeans 7.2.1 中我不能这样做:“转到构建>编译“(您的插件的名称)”“

请给我建议!

4

1 回答 1

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!");
  }
}

现在在文件夹 src/main/resources 中创建一个 plugins.config 文件,其内容为:

Plugins, "Hello World!", cz.cuni.lf1.imagejstubproject.Hello

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

下一步是向包含 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 中的 Help->Refresh Menus 即可重新加载插件。要将插件复制到 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 安装文件夹(而不是插件文件夹)。现在你的插件应该被复制到每个构建的插件文件夹中。

为了能够从 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 中的调试项目时,您应该能够调试您的插件。

您可以在此处下载此示例插件。

于 2012-12-18T13:05:01.670 回答