I recommend following 2 based on your requirements.
Both support syntax-highlighting and allow to compile & run from the graphical User-Interface.
Of course like Java itself they are free open source software and platform independent.
BlueJ
An IDE designed exclusively for learning Java is BlueJ
BlueJ is an integrated development environment for the Java programming language, developed mainly for educational purposes, but also suitable for small-scale software development. It runs with the help of JDK. BlueJ was developed to support the learning and teaching of object-oriented programming, and its design differs from other development environments as a result. The main screen graphically shows the class structure of an application under development, and objects can be interactively created and tested. This interaction facility, combined with a clean, simple user interface, allows easy experimentation with objects under development. Object-oriented concepts are represented visually and in its interaction design in the interface.
DrJava
A lightweight Java IDE is DrJava
DrJava is a lightweight IDE for the Java programming language. Designed primarily for beginners and actively developed and maintained by the JavaPLT group at Rice University, its interface uses Sun Microsystems' Swing toolkit and therefore has a consistent appearance on different platforms.
Other Java IDEs
For the beginner's purpose of learning Java I would not recommend a fully fledged Java IDE. Because most of them bring along distraction; e.g., project support (Maven/Gradle, Git, refactoring, etc.) you probably wouldn't need at the beginning.
Although find a full Comparison of Java IDEs at Wikipedia.