Basing the definition on whether it's compiled or not doesn't help much.
Python is actually compiled to bytecode, just like Java. Is it not a scripting language?
Or is the distinction that the Python bytecode is interpreted whereas Java is JIT compiled to machine code? Well, Java didn't get the JIT compiler until version 1.3 - so was Java 1.2 a scripting language?