http://imagej.273.s1.nabble.com/Help-with-Netbeans-and-plugins-tp3697701p3697703.html
Ok I got it to work. It appears NetBeans is more picky about things
than just javac. After looking at String.format closer it actually
expects objects not primitive types. Thanks for the responses.
Todd V. Rovito wrote:
> Hello fellow ImageJers,
> I have been using ImageJ and writing plugins for ~ 8 months now.
> Things have been going great! I currently use a bare development
> environment with just the Sun JDK version on RedHat Enterprise Linux
> version 5.0. Essentially I am using the Linux install of ImageJ
> version 1.37 and only compiling my plugins. While this has worked for
> me I would like to graduate to the Netbeans environment. Netbeans IDE
> would work better for other people on the project.
>
> Let me review my old development environment (don't laugh).
> If I compile my plugins by hand using the following command (which I
> placed in a makefile) everything works fine:
>
> /opt/jdk1.5.0_14/bin/javac -cp
> /usr/local/ImageJ/ij.jar:/opt/jdk1.5.0_14/lib/tools.jar,/home/rovitotv/AngelFireRoot/AngelFire/Utilities/ImageJPlugins
> RAW_Side_By_Side_Reader_NightStare.java
>
> I get a class file with no warnings or errors on the compile. I then
> copy the class file to my ImageJ plugin directory and run ImageJ. The
> plugin functions perfectly within ImageJ, I get the expected result!
>
> Let me review the new Netbeans development setup. I followed the
> directions posted here:
>
http://rsb.info.nih.gov/ij/developer/NBTutorial.html>
> I have installed Netbeans 6.0 since it is the latest with JDK
> 1.5.0_14. So I follow the instructions and everything seems to work
> when I get past the step "Building ImageJ with NetBeans" I have a
> ij.jar in the ~/NetBeansProject/ij138x folder. If I do a clean and
> build of the imageJ project I get the following in the output:
> clean:
> clean:
> Deleting directory /home/rovitotv/NetBeansProjects/ij138x/build
> Deleting: /home/rovitotv/NetBeansProjects/ij138x/ij.jar
> build:
> compile:
> Created dir: /home/rovitotv/NetBeansProjects/ij138x/build
> Compiling 241 source files to
> /home/rovitotv/NetBeansProjects/ij138x/build
> /home/rovitotv/NetBeansProjects/ij138x/ij/plugin/ScaleBar.java:81:
> warning: unmappable character for encoding UTF8
> units = "?m";
> /home/rovitotv/NetBeansProjects/ij138x/ij/plugin/ScaleBar.java:161:
> warning: unmappable character for encoding UTF8
> units = "?m";
> Note: Some input files use or override a deprecated API.
> Note: Recompile with -Xlint:deprecation for details.
> 2 warnings
> build:
> Copying 1 file to /home/rovitotv/NetBeansProjects/ij138x/build
> Copying 1 file to /home/rovitotv/NetBeansProjects/ij138x/build
> Copying 1 file to /home/rovitotv/NetBeansProjects/ij138x/build
> Copying 1 file to /home/rovitotv/NetBeansProjects/ij138x/build
> Copying 11 files to /home/rovitotv/NetBeansProjects/ij138x/build/macros
> Building jar: /home/rovitotv/NetBeansProjects/ij138x/ij.jar
> BUILD SUCCESSFUL (total time: 8 seconds)
>
> Two warnings but at this point I am not too worried. Without adding
> any plugins if I select "Run Main Project" ImageJ runs and the "About
> ImageJ" dialog box shows ImageJ 1.38x with Java 1.5.0_14. ImageJ reads
> files and allows me to make histograms. I can do the exact same thing
> with the "Debug Main Project" option in Netbeans. At this point I am a
> happy!
>
> Now onto the plugins instructions are under "Compiling and Debugging
> Plugins". I copy a plugin that builds and runs with my initial
> development method as described above into
> ~/NetBeansProjects/ij138x/plugins. If I click on plugins and then
> <default package> in the Netbeans project view the plugin java file
> appears. I execute step 5 "Go to Build>Compile "(The name of your
> plugin)" everything seems to compile fine. The output of "ImageJ
> (compile-selected-files-in-plugins) looks like this:
>
> compile-selected-files-in-plugins:
> compile-selected-files-in-plugins:
> BUILD SUCCESSFUL (total time: 0 seconds)
>
> I then have a class file called
> RAW_Side_By_Side_Reader_NightStare.class. Again if I take the class
> file that Netbeans built and I place it into my running installation
> of ImageJ in /usr/local/ImageJ/plugins/AngelFire sure enough it runs
> perfectly!
>
> Here is my problem when I get to step 16:
> "Go to Run>Debug Main Project (ImageJ will run. The plugin you created
> will be in the plugins menu)"
>
> I get the following output in ImageJ(debug-nb):
> debug-nb:
> Duplicated project name in import. Project ImageJ defined first in
> /home/rovitotv/NetBeansProjects/ij138x/nbproject/nbjdk.xml and again
> in /home/rovitotv/NetBeansProjects/ij138x/build.xml
> compile:
> Compiling 1 source file to /home/rovitotv/NetBeansProjects/ij138x/build
> /home/rovitotv/NetBeansProjects/ij138x/plugins/RAW_Side_By_Side_Reader_NightStare.java:82:
> cannot find symbol
> symbol : method format(java.lang.String,int,int)
> location: class java.lang.String
> filename = String.format("%1$06d-%2$06d.pos", 0, FrameNum);
> /home/rovitotv/NetBeansProjects/ij138x/plugins/RAW_Side_By_Side_Reader_NightStare.java:125:
> cannot find symbol
> symbol : method format(java.lang.String,int,int)
> location: class java.lang.String
> filename = String.format("%1$06d-%2$06d.raw", 0, FrameNum);
> /home/rovitotv/NetBeansProjects/ij138x/plugins/RAW_Side_By_Side_Reader_NightStare.java:135:
> cannot find symbol
> symbol : method format(java.lang.String,int,int)
> location: class java.lang.String
> filename = String.format("%1$06d-%2$06d.raw", CamNum, FrameNum);
> 3 errors
> /home/rovitotv/NetBeansProjects/ij138x/nbproject/nbjdk.xml:23: The
> following error occurred while executing this line:
> /home/rovitotv/NetBeansProjects/ij138x/build.xml:9: Compile failed;
> see the compiler error output for details.
> BUILD FAILED (total time: 0 seconds)
>
> At this point I am stuck! I don't understand why this code does not
> build when it builds perfectly calling javac by hand. This must be a
> problem with my Netbeans configuration. Can anybody help? Thanks.
>
>