Compared to imperative programming languages like Pascal or Basic, or functional programming languages like ML or Haskell learning Java is hampered by the fact that to get even the simplest running program the learner has to define a public class and a method with a certain signature. We present both a stand-alone and a webbased interpreter which execute Java fragments and relieve the learner from programming all the extra code. The implementation of these interpreters extremely differs from other Java interpreters and exploits the Java compiler as much as possible to preserve the original semantics of Java and allow access to all features and APIs of Java. By virtue of these interpreters the learner can explore primitive values, variables, expressions, assignments, and control-flow statements before even knowing about classes and methods. The web-based interpreter has been integrated into an online tutorial for learning Java programming from basic principles. Categories and Subject...