Skip to content

Java scripting fails with Java 11+ #14

Open
@ctrueden

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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions