The paper presents new Java programs scheduling algorithms for execution on clusters of Java Virtual Machines (JVMs), which involve extremal optimization (EO) combined with task clustering. Two new scheduling algorithms are presented and compared. The first employs task clustering to reduce an initial program graph and then applies extremal optimization to schedule the reduced program graph to system resources. The second algorithm applies task clustering only to find an initial solution which is next improved by the EO algorithm working on the initial program graph. Both algorithms are also compared to an EO algorithm which does not use the clustering approach.