Many open source implementations of Java already exist like Apache Harmony project, the OpenJDK or Red Hat's Iced Tea apart from Oracle's reference implementation.
Coming to the point of there being plenty of languages, I don't think there are any exact substitutes. Low level languages like C/C++ are a bit overkill for application development.
Python is good (I'm a big fan myself), but an interpreter is much slower than a JIT compiled language even on a quad-core. I think we should have python as an option, but that should not be the only language.
The only real replacement (and even a better one) in my opinion is C#. C# is a much evolved language than Java and is also open source (Microsoft has made it so through the MCP).
Java is free to develop with.
Java APIs can be copied and used, with one condition - all APIs from JDK should be used and nothing can be removed. Google failed to comply with this.