Posted by
Fred Damen on
Jul 30, 2020; 5:21pm
URL: http://imagej.273.s1.nabble.com/Weird-behavior-with-GenericDialog-addImage-tp5023785p5023794.html
Greetings,
I suspect that this does not address the OP issue since the information
that the OP is saying is carried over though compiles is not compiled in,
at least given the source example that was posted.
The Compile&Run *should* always run the java class that is in its editor
window, and if it does not then this should be considered broken. As far
as I can tell this is what Compile&Run...(^R) is doing, i.e., its working
correctly in this regard, albeit the jar stuff seems to have issues.
Using the following who_am_i.java source as a starting point I ...
import ij.*;
import ij.process.*;
import ij.gui.*;
import java.awt.*;
import ij.plugin.*;
import ij.plugin.frame.*;
public class who_am_i implements PlugIn {
public void run(String arg) {
IJ.log("I am from the editor");
}
}
1) entered this java program and ran it.
Plugins>Macros>Edit... who_am_i.java
^R
log: I am from the editor
2) produced .class file to run after restart.
s/editor/.class file/
^R
s/.class file/editor/
^S
exit imagej and restart
Plugins>who_am_i
log: I am from the .class file
Plugins>Macros>Edit... who_am_i.java
^R
log: I am from the editor
3) produce whoami.jar file and run after restart.
s/editor/.jar file/
^R
log: I am from the .jar file
linux: jar cvfM whoami.jar who_am_i.class
s/.jar/.class/
^R
log: I am from the .class file
s/.class file/editor/
^S
exit imagej and restart
Plugins>who_am_i
log: I am from the .class file
Plugins>Macros>Edit... who_am_i.java
^R
log: I am from the editor
4) convert whoami.jar to who_am_i.jar and start imagej
linux: mv whoami.jar who_am_i.jar
start imagej
imagej complains about two who_am_i's
There are two Plugins>who_am_i
and both produce
log: I am from the .class file
Plugins>Macros>Edit... who_am_i.java
^R
log: I am from the editor
and both menu entries now produce
log: I am from the editor
Where the java compilier(linker/loader) is supposed to get all the
unresolved references was one of my previous issues.
Enjoy,
Fred
On Thu, July 30, 2020 8:32 am, Michael Schmid wrote:
> Hi Philippe,
>
> if you Compile&Run a class that is also in a .jar or .zip file in your
> plugins and that .jar or .zip was loaded when ImageJ was started, the
> following wil happen:
> It will compile the new version (and check for errors), but not replace
> the version from the .jar or .zip file, so it will execute the code from
> the .jar or .zip.
>
> If the previous version is only a .class file in the plugins, the
> replaced version will be used. I am not sure whether this is intentional
> or not (replacing one class in a .jar might lead to incompatibilities).
>
>
> Could this explain your problem?
>
>
> Michael
> ________________________________________________________________
> On 30.07.20 14:54, CARL Philippe (LBP) wrote:
>> Hi again,
>>
>>> Perhaps I have been refreshing menus unnecessarily for many years? :-)
>>
>> So what you you are doing is:
>> 1 - modify the .java code
>> 2 - save the .java code
>> 3 - launch plugins>compile_and_run...
>> 4 - close the obtained interface
>> 5 - launch Help>Refresh_Menus
>> 6 - launch the compiled plugin from plugins>your_plugin?
>> When I'm working on a plugin, I loop the described workflow from 1 to 3,
>> that is all...
>> The only time you "normally" need to do Help>Refresh_Menus (or
>> alternatively close ImageJ) is when you want tu run a given plugin from
>> the Plugins menu and just saved it within the plugins folder or
>> alternatively started with a brand new .java file that had never been
>> compiled before.
>> Plugins>compile_and_run... is always overwriting the previously compiled
>> .class file and launching the new compiled one (unless of course you
>> don't have another .class file lost somewhere within your plugins folder
>> that you don't remember about - which I have to admit happen to me a
>> couple times already!!!).
>> My best regards,
>> Philippe
>>
>> ----- Mail original -----
>> De: "Gabriel Landini" <
[hidden email]>
>> Ã: "imagej" <
[hidden email]>
>> Envoyé: Jeudi 30 Juillet 2020 14:17:42
>> Objet: Re: Weird behavior with GenericDialog.addImage
>>
>> On Thursday, 30 July 2020 12:53:32 BST you wrote:
>>> I agree that the issue you are describing may indeed arise in the case
>>> you
>>> are compiling a code "outside" ImageJ (and then want to run it inside).
>>> But
>>> not when using the Plugins>Compile_and_run... tool directly within
>>> ImageJ
>>> (which is the way I always work).
>>
>> I thought that the menu is not automatically refreshed, because new
>> plugins
>> run and compiled from within IJ do not magically appear under the
>> plugins
>> menu.
>> Perhaps I have been refreshing menus unnecessarily for many years? :-)
>> Hopefully somebody can clarify whether the menu points to the newly
>> compiled
>> class.
>>
>> Cheers
>>
>> Gabriel
>>
>> --
>> ImageJ mailing list:
http://imagej.nih.gov/ij/list.html>>
>> --
>> ImageJ mailing list:
http://imagej.nih.gov/ij/list.html>>
>
> --
> ImageJ mailing list:
http://imagej.nih.gov/ij/list.html>
--
ImageJ mailing list:
http://imagej.nih.gov/ij/list.html