@TraceMethod(display = "Invoke static method (no args)")
	public void execute_on_class(
			@Param(
				schema = "ReferenceType",
				description = "Class",
				display = "Class",
				name = "class") RmiTraceObject obj,
			@Param(
				description = "Thread Name",
				display = "ThreadName",
				name = "thread_name") String threadName,
			@Param(
				description = "Method Name",
				display = "MethodName",
				name = "method_name") String methodName) {
		VirtualMachine vm = connector.getJdi().getCurrentVM();
		ReferenceType reftype = (ReferenceType) getObjectFromPath(obj.getPath());
		if (reftype instanceof ClassType cls) {
			List<Method> methods = cls.methodsByName(methodName);
			if (methods.size() > 1) {
				Msg.warn(this, "Method " + methodName + " is not unique - using first variant");
			}
			if (!methods.get(0).isStatic()) {
				Msg.error(this, "Method " + methodName + " is not static");
				return;
			}
			for (ThreadReference thread : vm.allThreads()) {
				if (thread.name().equals(threadName)) {
					cmds.execute(cls, thread, methods.get(0), new ArrayList<Value>(), 0);
				}
			}
		}
	}
NB: For the VirtualMachine, the step methods add requests for break-on-step for all threads.
These requests will remain pending until the VM is resumed.
Ghidra/Debug/Debugger-jpda/src/main/java/ghidra/dbg/jdi/rmi/jpda/JdiMethods.java