JSL (Java Simulation Library)
The JSL (a Java Simulation Library) is a simulation library for Java. The JSL’s current version has packages that support random number generation, statistical collection, basic reporting, and discrete-event simulation modeling. The development of a simulation model is based on sub-classing the ModelElement class that provides the primary recurring actions within a simulation and event scheduling and handling. The user adds developed model elements to an instance of Model and then executes the simulation. The purpose of the JSL is to support education and research within simulation. This is why it is open sourced under the GNU Public License.
Java Simulation Library (git book).
Overview of the JSL (PDF)
You can download the JSL via GitLab.
Some of my students have used AnyLogic