Unable to run PureDenoise plugin (macro version) in FIJI

I cannot seem to run the macro version of PureDenoise, when launching the plugin through a macro (run("PureDenoise ", "parameters=‘1 1’ estimation=‘Auto Individual’ "):wink: this is the error that I’m getting:

[Tue Jul 31 14:57:03 CEST 2018] [ERROR] null
java.lang.RuntimeException: Could not even fall back to javac in the PATH
at org.scijava.minimaven.JavaCompiler.call(JavaCompiler.java:129)
at org.scijava.minimaven.MavenProject.build(MavenProject.java:538)
at org.scijava.minimaven.MavenProject.build(MavenProject.java:463)
at org.scijava.minimaven.MavenProject.build(MavenProject.java:446)
at org.scijava.plugins.scripting.java.JavaEngine.compile(JavaEngine.java:209)
at org.scijava.plugins.scripting.java.JavaEngine.eval(JavaEngine.java:136)
at org.scijava.script.ScriptModule.run(ScriptModule.java:160)
at org.scijava.module.ModuleRunner.run(ModuleRunner.java:168)
at org.scijava.module.ModuleRunner.call(ModuleRunner.java:127)
at org.scijava.module.ModuleRunner.call(ModuleRunner.java:66)
at org.scijava.thread.DefaultThreadService$3.call(DefaultThreadService.java:238)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.RuntimeException: java.io.IOException: Cannot run program “javac” (in directory “.”): CreateProcess error=2, The system cannot find the file specified
at org.scijava.util.ProcessUtils.exec(ProcessUtils.java:138)
at org.scijava.util.ProcessUtils.exec(ProcessUtils.java:72)
at org.scijava.minimaven.JavaCompiler.execute(JavaCompiler.java:169)
at org.scijava.minimaven.JavaCompiler.call(JavaCompiler.java:126)
… 14 more
Caused by: java.io.IOException: Cannot run program “javac” (in directory “.”): CreateProcess error=2, The system cannot find the file specified
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
at java.lang.Runtime.exec(Runtime.java:620)
at org.scijava.util.ProcessUtils.exec(ProcessUtils.java:99)
… 17 more
Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.(ProcessImpl.java:386)
at java.lang.ProcessImpl.start(ProcessImpl.java:137)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
… 19 more
[Tue Jul 31 14:57:19 CEST 2018] [ERROR] null
java.lang.RuntimeException: Could not even fall back to javac in the PATH
at org.scijava.minimaven.JavaCompiler.call(JavaCompiler.java:129)
at org.scijava.minimaven.MavenProject.build(MavenProject.java:538)
at org.scijava.minimaven.MavenProject.build(MavenProject.java:463)
at org.scijava.minimaven.MavenProject.build(MavenProject.java:446)
at org.scijava.plugins.scripting.java.JavaEngine.compile(JavaEngine.java:209)
at org.scijava.plugins.scripting.java.JavaEngine.eval(JavaEngine.java:136)
at org.scijava.script.ScriptModule.run(ScriptModule.java:160)
at org.scijava.module.ModuleRunner.run(ModuleRunner.java:168)
at org.scijava.module.ModuleRunner.call(ModuleRunner.java:127)
at org.scijava.module.ModuleRunner.call(ModuleRunner.java:66)
at org.scijava.thread.DefaultThreadService$3.call(DefaultThreadService.java:238)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.RuntimeException: java.io.IOException: Cannot run program “javac” (in directory “.”): CreateProcess error=2, The system cannot find the file specified
at org.scijava.util.ProcessUtils.exec(ProcessUtils.java:138)
at org.scijava.util.ProcessUtils.exec(ProcessUtils.java:72)
at org.scijava.minimaven.JavaCompiler.execute(JavaCompiler.java:169)
at org.scijava.minimaven.JavaCompiler.call(JavaCompiler.java:126)
… 14 more
Caused by: java.io.IOException: Cannot run program “javac” (in directory “.”): CreateProcess error=2, The system cannot find the file specified
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
at java.lang.Runtime.exec(Runtime.java:620)
at org.scijava.util.ProcessUtils.exec(ProcessUtils.java:99)
… 17 more
Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.(ProcessImpl.java:386)
at java.lang.ProcessImpl.start(ProcessImpl.java:137)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
… 19 more

The same plugin works in plain ImageJ, I tried disabling the jre bundled with FIJI by renaming the java folder and using the system’s JDK8 (downloaded today) but it fails as well.
After a google search I came up with another user experiencing similar issues that were caused by the removal of a java component in FIJI due to legal reasons.
I would like to keep using this plugin as it is because the results are good with the standard GUI version and it would be very useful to script the denoising in the context of a macro, as it stands this would force me to use the plain imagej lacking several useful features.

I forgot to add the url for the plugin:
http://bigwww.epfl.ch/algorithms/denoise/

http://bigwww.epfl.ch/algorithms/denoise/PureDenoise.zip

Apologies

Hi DS4242,

have you ever managed to solve the problem? I got a similiar error using my FIJI installation of ImageJ. With a fresh ImageJ the macro version is working ‘somewhat’. Unfortunatly the results of the macro version are VERY different (ununsable) to the ones of the.jar plugin.

Is somebody around who can shed some light on what might be gong on?!

Here’s a comparison of the two results from the different versions on the denoiser.

denoise_plugin_vs_macro|690x360

Best regards, Lars

I never solved this nasty issue, installed the JDK in my ubuntu system too (Version 11). As a workaround I just run the batch denoising in plain ImageJ. With other plugins distributed as source code .java files, I managed to use the run and compile in ImageJ and then transfer the compiled .class file in FIJI, but this has never worked for me either.

This is a case where licensing concerns about distributing the java compiled prevailed over maintaining expected functionality.