Posted by
Stein Rørvik on
Nov 06, 2017; 11:58am
URL: http://imagej.273.s1.nabble.com/Macro-fails-to-open-stack-when-launched-from-the-commandline-tp5019638p5019661.html
I also wrote in my previous posting that this issue does not occur on all ImageJ installations I have.
Now I found out what makes this bug happen or not:
It only fails if ImageJ has a Startup macro installed.
My macros/RunAtStartup.ijm launches a custom toolset:
--------------------------------------------------
run("Install...", "install=["+getDirectory("macros") + "toolsets\\SR Custom Tools.ijm"+"]");
--------------------------------------------------
If I remove RunAtStartup.ijm, my stack import macro from the command line works as it should.
It also works if I insert a small delay at the end of the startup macro:
--------------------------------------------------
run("Install...", "install=["+getDirectory("macros") + "toolsets\\SR Custom Tools.ijm"+"]");
wait(1000);
--------------------------------------------------
So the problem is indeed a timing issue; probably the command line macro tries to run too soon before the startup macros has properly finished.
Stein
-----Original Message-----
From: ImageJ Interest Group [mailto:
[hidden email]] On Behalf Of Stein Rørvik
Sent: 30. oktober 2017 15:13
To:
[hidden email]
Subject: Macro fails to open stack when launched from the commandline
[This sender failed our fraud detection checks and may not be who they appear to be. Learn about spoofing at
http://aka.ms/LearnAboutSpoofing]
Hello,
I have encountered a strange bug:
If a macro is launched from the commandline (Windows 7 64-bit, Java 1.6), any stack import silently fails UNLESS ImageJ is already running.
To reproduce the problem:
Demo macro to create a stack to be opened:
MacroMakeVirtualStack.ijm
----------------------------------------------------------------------
run("T1 Head (2.4M, 16-bits)");
dir = getDirectory("temp")+"T1-Head\\";
File.makeDirectory(dir);
run("Image Sequence... ", "format=TIFF save="+dir);
----------------------------------------------------------------------
Demo macro to open this stack:
MacroOpenVirtualStack.ijm
----------------------------------------------------------------------
dir = getDirectory("temp")+"T1-Head\\";
print("Dir to import: '" + dir + "'");
run("Image Sequence...", "open=&dir sort use"); print("Opened title: " + getTitle());
----------------------------------------------------------------------
Put the above in the ImageJ/macros folder and run this on the commandline (without ImageJ running)
ImageJ.exe -macro MacroOpenVirtualStack.ijm
The macro fails to open the stack.
Now go back to the command line and repeat the command, without closing ImageJ.
The macro now works as it should.
The problem occurs with both real and virtual stacks.
The problem occurs on three out of five computers I have tested it on; all running Windows 7 64-bit.
It occurs on both old and new versions of ImageJ (I tried 1.49 and 1.51r).
The computers it works on are the slowest ones, so I suspect it might be a timing issue.
Stein
--
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