I think that your approach of using the env variables seems fine if there's no other standard place which would have the libraries... 

Now, if there are other standards (i.e.: for instance if the jar is usually on /usr/share/java and the /Lib is in /usr/jython/Lib), maybe we could accommodate that (still, I'm not really knowledgeable what would be standard in this cases, so, if you feel there are no standards besides the JYTHON_HOME, just looking for it seems to be Ok for me).



On Wed, Oct 16, 2013 at 11:54 AM, Andrew Ferrazzutti <aferrazz@redhat.com> wrote:
Hi Fabio,

I have another concern regarding Jython. I know that at the moment PyDev only supports Jython jars as interpreters, but the auto-interpreters don't really take this into account properly. Once the auto-configurer (and also the manual configurer) finds a jython.jar file, it tries to add the Lib and Lib/site-packages folders as system libraries by appending those pathnames to the directory of the jar it just found. In most cases, though, the jar that is found exists outside of a dedicated Jython folder, and library directories (correctly) don't exist there.

For example, other than paths specified by environment variables like JYTHON_HOME, the paths that are searched for jython.jar are /usr/share/java, /usr/bin, and /usr/local/bin (see JythonInterpreterProviderFactory.java). These directories all contain a jython.jar, but of course have no Lib folder.

I recently made a change to the auto-interpreter for it to reject jython.jar directories that lack a Lib folder, but the fact that paths which will definitely not have Lib folders are searched seems somewhat pointless. Since the ideal case is to use a jython.jar from a directory containing all appropriate library folders, I think it would be more appropriate to only search paths specified by environment variables, and for PyDev to better notify the user of which env variables the auto-interpreter uses as Jython search paths.

Let me know what you think.