That is blatantly wrong. Closures, that is, the implementation structure which stores along with a code pointer the references or values to which local variables referenced by said code are bound, have been in Java since version 1.0. Otherwise you could not write code such as:
class foo { final static int bar = 6; static class baz { int bla() { return bar; } } }
and expect "(new foo.baz()).bla()" to return 6.
What Java is missing (and I suspect what the author is conflating closures with) are anonymous functions, which require closures to function properly for the same reason inner classes require closures.
Closures are not anonymous functions. Closures are an implementation detail which allow anonymous functions (among other structures) to act as expected in statically-scoped languages.
Scheme has anonymous functions and closures.
Java does not have anonymous functions but does have closures.
Emacs Lisp has anonymous functions but does not have closures (and thus does not exhibit static scope).
BASIC has neither anonymous functions nor closures.
(It is worthwhile to note that there are other methods for implementing static scope such as alpha-renaming but they are usually much less efficient than closures.)