Skip to content

Java scripting fails with Java 11+ #14

Description

@ctrueden

When running with Java 8, the following program:

import ij.plugin.PlugIn;
import ij.IJ;

public class Hello_World implements PlugIn {
	@Override
	public void run(String arg) {
		IJ.log("Hello, world!");
	}
}

saved as Hello_World.java from the Script Editor, then executed, works.

But when run with Java 11 or 17 or 21, it fails with a series of errors:

Started Hello_World.java at Fri Mar 07 22:06:20 CST 2025
Hello_World not up-to-date because 1 source files are not up-to-date (/tmp/java1072651054789608596/src/main/java/Hello_World.java)
Compiling 1 file in /tmp/java1072651054789608596
[-classpath, /tmp/java1072651054789608596/target/classes, -d, /tmp/java1072651054789608596/target/classes, /tmp/java1072651054789608596/src/main/java/Hello_World.java]
using the class path: /tmp/java1072651054789608596/target/classes
warning: Supported source version 'RELEASE_8' from annotation processor 'org.scijava.annotations.AnnotationProcessor' less than -source '11'
/tmp/java1072651054789608596/src/main/java/Hello_World.java:1: error: package ij.plugin does not exist
import ij.plugin.PlugIn;
                ^
/tmp/java1072651054789608596/src/main/java/Hello_World.java:2: error: package ij does not exist
import ij.IJ;
         ^
/tmp/java1072651054789608596/src/main/java/Hello_World.java:4: error: cannot find symbol
public class Hello_World implements PlugIn {
                                    ^
  symbol: class PlugIn
3 errors
1 warning
java.lang.ClassNotFoundException: Hello_World
	at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:476)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
...

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    Fields

    No fields configured for Bug.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions