What puzzles me is, how does it come that the Python Shell plug-in for jEdit does not work with Python3? The issue seem to be known since year 2012 and apparently no one has yet provided an updated version ( http://www.jedit.org/oldtrackers/Plugin%20Feature%20Requests/3498547.html ) of this plug-in working for both Python2.x and Python3.x .
Am I alone with the need of having this plug-in up an running in jEdit?
The problem is that this plug-in uses the execfile() function which is not available in Python3. In order to provide a fix it is necessary to replace in PythonShell.java code of this plugin:
exec( open("filename").read() )
jar -u PythonShell.jar -C python/shell PythonShell.class
jar: `-u' mode requires a file name
jar command by default works in streamed mode. This means if you do
jar -c foo, it takes the file
foo creates a JAR out of it and outputs it to stdout. You can then either redirect this to a file (
jar -c foo >foo.jar), or you can use
-f to instruct
jar to create a file (
jar -cf foo.jar foo).
The same applies when updating a JAR file, you can either stream the input in and the output out like
cat foo.jar | jar -u foo >foo2.jar or you can use
-f to instruct it to update the file in place like
jar -uf foo.jar foo.
If you tell it to update a file using
-u, but you don't specify which file to update with
-f and are not giving anything on stdin, then it cannot work as it does not know what file to update.
PS: You are welcome to submit a patch to https://sourceforge.net/p/jedit/plugin-patches for the plugin maintainer to accept, or overtake maintenance of the plugin if there is no active maintainer and you want to overtake.