Message8647
Launching a sub-process is unreliable and fails during regression tests. A simple example is:
>>> import subprocess, sys, os
>>> sys.executable
'C:\\Users\\Jeff\\Documents\\Eclipse\\jython-trunk\\dist\\bin\\jython.bat'
>>> subprocess.call([sys.executable, '-V'])
The input line is too long.
:classpathDefined
was unexpected at this time.
255
The message is from cmd.exe. The label is mostly a red herring, but it is a bit of the jython.bat script just after the java command. This command is very long, and it's mostly to do with JAR files:
>>> len(os.environ["_FULL_CMD"])
4371
>>> os.environ["_FULL_CMD"].count(".jar")
52
This doesn't yet fail in my integration spot, which has a shorter path, but I don't accept that the path to my Eclipse workbench is abnormally long. Users will have the same problem I think.
We get the class path in this command by enumerating dist/javalib. The regrtest runs ok if I delete from there those JARs I suspect are superfluous (old ANTLR JARs, other platform JFFI JARs). However, I worry there may be some tool that needs them. But we could be smarter building the javalib directory.
Nowadays, Java accepts a wildcard in its class path: but we'd need Jython to catch up with that idea, wouldn't we? |
|
Date |
User |
Action |
Args |
2014-06-15 08:47:26 | jeff.allen | set | recipients:
+ jeff.allen |
2014-06-15 08:47:26 | jeff.allen | set | messageid: <1402822046.35.0.526056401614.issue2165@psf.upfronthosting.co.za> |
2014-06-15 08:47:26 | jeff.allen | link | issue2165 messages |
2014-06-15 08:47:25 | jeff.allen | create | |
|