Search code examples
javapythoneclipsepydevjython

How do I fix UnsupportedCharsetException in Eclipse Kepler/Luna with Jython/PyDev?


Example code:

from java.lang import System

if __name__ == '__main__':
    [System.out.print(x) for x in "Python-powered Java Hello World from within a List-Comprehension."]

Annoying output:

console: Failed to install 'org.python.util.JLineConsole': java.nio.charset.UnsupportedCharsetException: cp0.
console: Failed to install 'org.python.util.JLineConsole': java.nio.charset.UnsupportedCharsetException: cp0.
Python-powered Java Hello World from within a List-Comprehension.

I've tried the solution described here and here. Both solutions failed miserably (I've added the -Dpython.console.encoding=UTF-8 argument to the JVM and the PyDev interactive console).

There's also another question about it here from 4 months ago, and no one answered it. So, how do I fix it?

EDIT: I've just installed the new Eclipse Luna, installed PyDev with Jython, and the same thing happens.


Solution

  • I've fixed the problem by downgrading Jython from 2.7.0 to 2.5.4rc1. It seems to be an issue of Python 3.4 with Jython 2.7.0.

    So, I've downloaded the Jython 2.5.4rc1 - Standalone Jar, and changed the Jython interpreter manually on Eclipse Luna by going: Window -> Preferences -> PyDev -> Interpreters -> Jython Interpreter -> Removing the current Jython Interpreter -> New Button (Adding the downloaded standalone .jar).

    Now we have to wait to see if the Jython bug will go away on the next version of Jython (Perhaps it's not an issue of Python 3.4, but an issue with Eclipse itself. In all cases, I've test both with Kepler and Luna, and the error persisted. I did not test with Python 2.7, so I don't know).

    Case closed.