From: David H. <dav...@gm...> - 2007-07-20 00:07:26
|
Hi, I am trying to embed my Jython code in a Java program, Eclipse to be exact, and I'm having trouble with class loading. My Python code fails to load classes that I know are accessible in the Java context where the PythonInterpreter was created. How can I make a PythonInterpreter able to use the same classes that are accessible in the code that creates it? I tried creating a PySystemState and setting its classloader, but it didn't work: try { Class.forName("org.eclipse.jface.viewers.IStructuredContentProvider"); System.out.println("Successfully loaded IStructuredContentProvider by name from Java"); } catch (Exception e) { System.out.println("Failed to load IStructuredContentProvider by name from Java"); } PySystemState.initialize(); PySystemState state = new PySystemState(); state.setClassLoader(Thread.currentThread().getContextClassLoader()); PythonInterpreter interpreter = new PythonInterpreter(null, state); try { interpreter.exec("from org.eclipse.jface.viewers import IStructuredContentProvider"); } catch (Throwable t) { System.out.println("Failed to import IStructuredContentProvider: " + t.toString()); } The class was loaded successfully in Java, but not in Python: Successfully loaded IStructuredContentProvider by name from Java Failed to import IStructuredContentProvider: Traceback (innermost last): File "<string>", line 1, in ? ImportError: no module named jface How should this be done? -David |
From: David H. <dav...@gm...> - 2007-07-20 16:18:26
|
On 7/19/07, Jeff Emanuel <jem...@fr...> wrote: > In my app, I found I have to.... Thanks much; it looks like this is working, though I won't be sure until I've finished adding all the necessary calls to add_package. Problem solved, tentatively. I still don't understand why my original code didn't work, but I'm now convinced it is a Java/Eclipse question rather than a Jython one. Just out of curiousity, why is add_package needed in Jython? From a quick glance over the Jython source, it seems to be simply a way of declaring that a Java package exists. I'm guessing that if it were safe to call add_package on nonexistent packages, there would be no need to call it by hand. -David |
From: Jeff E. <jem...@fr...> - 2007-07-20 18:04:22
|
Sorry, I don't know why its required or whether nonexistent packages cause problems. David Huebel wrote: > On 7/19/07, Jeff Emanuel <jem...@fr...> wrote: >> In my app, I found I have to.... > > Thanks much; it looks like this is working, though I won't be sure > until I've finished adding all the necessary calls to add_package. > Problem solved, tentatively. I still don't understand why my original > code didn't work, but I'm now convinced it is a Java/Eclipse question > rather than a Jython one. > > Just out of curiousity, why is add_package needed in Jython? From a > quick glance over the Jython source, it seems to be simply a way of > declaring that a Java package exists. I'm guessing that if it were > safe to call add_package on nonexistent packages, there would be no > need to call it by hand. > > -David > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2005. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > Jython-users mailing list > Jyt...@li... > https://lists.sourceforge.net/lists/listinfo/jython-users |
From: Charlie G. <cha...@gm...> - 2007-07-23 05:08:03
|
On 7/20/07, David Huebel <dav...@gm...> wrote: > Just out of curiousity, why is add_package needed in Jython? From a > quick glance over the Jython source, it seems to be simply a way of > declaring that a Java package exists. I'm guessing that if it were > safe to call add_package on nonexistent packages, there would be no > need to call it by hand. Jython can't just assume that a package exists because packages show up through the import statement. If it were assumed that items that can't be found in an import are Java packages, all sorts of havoc would break loose if a module that is expected to exist on the path doesn't, or if a typo is made importing a module. For example, if I tried "import BaseHttpServer" instead of actually using the std lib module BaseHTTPServer, Jython would create a java package BaseHttpServer for me. Things would get even weirder if I tried to access attributes on that nonexistent package or call dir on it. Much of this problem is ameliorated for regular Jython usage because the package scanner(http://wiki.python.org/jython/PackageScanning) picks up on all packages available on the classpath at startup and doesn't require calls to add_package. Because you're forced to use a custom classloader by Eclipse, you have to handle add_package on your own. It does seem like it would be possible to eliminate the need for add_package if we auto-created nonexistent packages if a user imports a fully qualified Java class. Since we can ask the classloader if a class really exists, we could use its existence to confirm the existence of the packages that contain it. Those packages would still be odd since they wouldn't be fully populated with things that haven't been imported, but I think that would be better than requiring add_package. Yet another thing for the list of things it would be nice to have in Jython.... Charlie |
From: Oti <oh...@gm...> - 2007-07-26 16:38:56
|
On 7/23/07, Charlie Groves <cha...@gm...> wrote: > On 7/20/07, David Huebel <dav...@gm...> wrote: > > Just out of curiousity, why is add_package needed in Jython? From a > > quick glance over the Jython source, it seems to be simply a way of > > declaring that a Java package exists. I'm guessing that if it were > > safe to call add_package on nonexistent packages, there would be no > > need to call it by hand. > > Jython can't just assume that a package exists because packages show > up through the import statement. If it were assumed that items that > can't be found in an import are Java packages, all sorts of havoc > would break loose if a module that is expected to exist on the path > doesn't, or if a typo is made importing a module. For example, if I > tried "import BaseHttpServer" instead of actually using the std lib > module BaseHTTPServer, Jython would create a java package > BaseHttpServer for me. Things would get even weirder if I tried to > access attributes on that nonexistent package or call dir on it. > > Much of this problem is ameliorated for regular Jython usage because > the package scanner(http://wiki.python.org/jython/PackageScanning) > picks up on all packages available on the classpath at startup and > doesn't require calls to add_package. Because you're forced to use a > custom classloader by Eclipse, you have to handle add_package on your > own. > > It does seem like it would be possible to eliminate the need for > add_package if we auto-created nonexistent packages if a user imports > a fully qualified Java class. Since we can ask the classloader if a > class really exists, we could use its existence to confirm the > existence of the packages that contain it. Those packages would still > be odd since they wouldn't be fully populated with things that haven't > been imported, but I think that would be better than requiring > add_package. Yet another thing for the list of things it would be > nice to have in Jython.... > > Charlie That's exactly what I'm doing when an explicit import of a class in a not package-scanned package happens: 1) find out if it is an existent java package 2) if yes, do the add_package and the import This means that sys.add_package() should not be necessary if explicit imports are used. For step 1), I am using Thread.currentThread().getContextClassLoader().getResource() Of course this is not the same as Class.forName(), but IMHO both should succeed if the classloader is the same. There might be cases when the context class loader is the wrong one (e.g. if PythonInterpreter is running inside of an Eclipse PLUGIN - they do their own classloader magic). I'd be interested in improving step (1). So if there is a reproducible import failure of an explicit java import (2.2.rc2 or higher), please let me know. best wishes, Oti. |
From: Charlie G. <cha...@gm...> - 2007-07-27 05:22:26
|
On 7/26/07, Oti <oh...@gm...> wrote: > On 7/23/07, Charlie Groves <cha...@gm...> wrote: > > It does seem like it would be possible to eliminate the need for > > add_package if we auto-created nonexistent packages if a user imports > > a fully qualified Java class. Since we can ask the classloader if a > > class really exists, we could use its existence to confirm the > > existence of the packages that contain it. Those packages would still > > be odd since they wouldn't be fully populated with things that haven't > > been imported, but I think that would be better than requiring > > add_package. Yet another thing for the list of things it would be > > nice to have in Jython.... > > That's exactly what I'm doing when an explicit import of a class in a > not package-scanned package happens: > 1) find out if it is an existent java package > 2) if yes, do the add_package and the import > This means that sys.add_package() should not be necessary if explicit > imports are used. What do you mean by an explicit import? Does 'from org.eclipse.jface.viewers import IStructuredContentProvider' as in David's example qualify? > For step 1), I am using > Thread.currentThread().getContextClassLoader().getResource() > Of course this is not the same as Class.forName(), but IMHO both > should succeed if the classloader is the same. > > There might be cases when the context class loader is the wrong one > (e.g. if PythonInterpreter is running inside of an Eclipse PLUGIN - > they do their own classloader magic). I think using Py.findClass might be a better way to do this. It tries the ClassLoader in the current PySystemState first, which is what a user will have set in an Eclipse plugin or anywhere they're forced to use a custom class loader. It's probably worth writing some bugtests to try out various permutations of classloader setups. Charlie |
From: Oti <oh...@gm...> - 2007-07-27 21:08:11
|
On 7/27/07, Charlie Groves <cha...@gm...> wrote: > On 7/26/07, Oti <oh...@gm...> wrote: > > On 7/23/07, Charlie Groves <cha...@gm...> wrote: > > > > It does seem like it would be possible to eliminate the need for > > > add_package if we auto-created nonexistent packages if a user imports > > > a fully qualified Java class. Since we can ask the classloader if a > > > class really exists, we could use its existence to confirm the > > > existence of the packages that contain it. Those packages would still > > > be odd since they wouldn't be fully populated with things that haven't > > > been imported, but I think that would be better than requiring > > > add_package. Yet another thing for the list of things it would be > > > nice to have in Jython.... > > > > That's exactly what I'm doing when an explicit import of a class in a > > not package-scanned package happens: > > 1) find out if it is an existent java package > > 2) if yes, do the add_package and the import > > This means that sys.add_package() should not be necessary if explicit > > imports are used. > > What do you mean by an explicit import? Does 'from > org.eclipse.jface.viewers import > IStructuredContentProvider' as in David's example qualify? Yes, because both java package and java class are mentioned. > > For step 1), I am using > > Thread.currentThread().getContextClassLoader().getResource() > > Of course this is not the same as Class.forName(), but IMHO both > > should succeed if the classloader is the same. > > > > There might be cases when the context class loader is the wrong one > > (e.g. if PythonInterpreter is running inside of an Eclipse PLUGIN - > > they do their own classloader magic). > > I think using Py.findClass might be a better way to do this. It tries > the ClassLoader in the current PySystemState first, which is what a > user will have set in an Eclipse plugin or anywhere they're forced to > use a custom class loader. It's probably worth writing some bugtests > to try out various permutations of classloader setups. Thanks for the tip! I'll check that. Oti. |
From: Jeff E. <jem...@fr...> - 2007-07-20 18:11:47
|
Add the java package names available from your class loader to the Jython package manager, like this: for (int i=0;i<packageNames.length;++i) { PySystemState.add_package(packageNames[i]); } Charlie Groves wrote: > Hi Jeff, > > Would you mind sending along what you told David to the list? I'm > curious as to how you fixed this. > > Charlie > > On 7/20/07, David Huebel <dav...@gm...> wrote: >> On 7/19/07, Jeff Emanuel <jem...@fr...> wrote: >> > In my app, I found I have to.... >> >> Thanks much; it looks like this is working, though I won't be sure >> until I've finished adding all the necessary calls to add_package. >> Problem solved, tentatively. I still don't understand why my original >> code didn't work, but I'm now convinced it is a Java/Eclipse question >> rather than a Jython one. >> >> Just out of curiousity, why is add_package needed in Jython? From a >> quick glance over the Jython source, it seems to be simply a way of >> declaring that a Java package exists. I'm guessing that if it were >> safe to call add_package on nonexistent packages, there would be no >> need to call it by hand. >> >> -David >> >> ------------------------------------------------------------------------- >> This SF.net email is sponsored by: Microsoft >> Defy all challenges. Microsoft(R) Visual Studio 2005. >> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >> _______________________________________________ >> Jython-users mailing list >> Jyt...@li... >> https://lists.sourceforge.net/lists/listinfo/jython-users >> |
From: Moore, G. <Gre...@ad...> - 2007-07-27 22:19:39
|
Hi, What do I need to do so that people that don't have Jython installed are able to use the scripts I've developed? These scripts also need 3rd party jars inorder to work. I've tried all sorts of things with no success at all No class path was set at this point. As you can see below I'm using Jython 2.2rc2 and java 1.5 on Windows XP. I've renamed the standalone Jar to jythonStandalone.jar C:\dist\soaptest>java.exe -jar ..\jythonStandalone.jar=20 Jython 2.2rc2 on java1.5.0_11 Type "copyright", "credits" or "license" for more information. >>> import sys >>> dir(sys) [ you know what happens with the dir() command ] >>> sys.add_package('./jars/dom4j-1.6.1.jar') <java package /jars/dom4j-1.6.1.jar 1> >>> from org.dom4j import * Traceback (innermost last): File "<console>", line 1, in ? ImportError: no module named dom4j >>> sys.packageManager.addJar('..\\jars\dom4j-1.6.1.jar', 1) >>> from dom4j import * Traceback (innermost last): File "<console>", line 1, in ? ImportError: no module named dom4j >>> sys.packageManager.addJarDir('..\\jars', 1) >>> from dom4j import * Traceback (innermost last): File "<console>", line 1, in ? ImportError: no module named dom4j >>> sys.packageManager.addJarDir('..\\jars\', 1) Traceback (innermost last): (no code object) at line 0 File "<console>", line 2 SyntaxError: Lexical error at line 2, column 0. Encountered: <EOF> after : "" >>> What I really what to know is how to do any of these lines work. Or do I have to install jython on every single computer? I'll even promise that if I get an answer that works I'll add it to the Wiki to help others... maybe in a jython for dummies section...lol :) Thanks in advance, Greg Moore QA Lead ADP Dealer Services This message and any attachments are intended only for the use of the add= ressee and may contain information that is privileged and confidential. I= f the reader of the message is not the intended recipient or an authorize= d representative of the intended recipient, you are hereby notified that = any dissemination of this communication is strictly prohibited. If you ha= ve received this communication in error, please notify us immediately by = e-mail and delete the message and any attachments from your system. |
From: <ast...@gm...> - 2007-07-28 07:52:59
|
Just a shot in the dark because I admit I've never tried doing this.. but how about jythonc? On 7/28/07, Moore, Greg <Gre...@ad...> wrote: > > What do I need to do so that people that don't have Jython installed are > able to use the scripts I've developed? These scripts also need 3rd > party jars inorder to work. |
From: Charlie G. <cha...@gm...> - 2007-07-28 08:05:30
|
I just include a little bat and sh script in the tars and zips I distribute. The script just sets up the classpath with all the jars I need and passes that to java with -cp. That's a pretty standard thing for command line Java tools to do, it isn't specific to Jython. If you're going to do that, you can't use -jar though. Just add the jython jar to the things you've added to the classpath and give Jython's main class, org.python.util.jython, explicitly. Charlie On 7/27/07, Moore, Greg <Gre...@ad...> wrote: > Hi, > > What do I need to do so that people that don't have Jython installed are > able to use the scripts I've developed? These scripts also need 3rd > party jars inorder to work. I've tried all sorts of things with no > success at all > > No class path was set at this point. As you can see below I'm using > Jython 2.2rc2 and java 1.5 on Windows XP. I've renamed the standalone > Jar to jythonStandalone.jar > > C:\dist\soaptest>java.exe -jar ..\jythonStandalone.jar > Jython 2.2rc2 on java1.5.0_11 > Type "copyright", "credits" or "license" for more information. > >>> import sys > >>> dir(sys) > [ you know what happens with the dir() command ] > >>> sys.add_package('./jars/dom4j-1.6.1.jar') > <java package /jars/dom4j-1.6.1.jar 1> > >>> from org.dom4j import * > Traceback (innermost last): > File "<console>", line 1, in ? > ImportError: no module named dom4j > >>> sys.packageManager.addJar('..\\jars\dom4j-1.6.1.jar', 1) > >>> from dom4j import * > Traceback (innermost last): > File "<console>", line 1, in ? > ImportError: no module named dom4j > >>> sys.packageManager.addJarDir('..\\jars', 1) > >>> from dom4j import * > Traceback (innermost last): > File "<console>", line 1, in ? > ImportError: no module named dom4j > >>> sys.packageManager.addJarDir('..\\jars\', 1) > Traceback (innermost last): > (no code object) at line 0 > File "<console>", line 2 > SyntaxError: Lexical error at line 2, column 0. Encountered: <EOF> > after : "" > >>> > > What I really what to know is how to do any of these lines work. Or do I > have to install jython on every single computer? > > I'll even promise that if I get an answer that works I'll add it to the > Wiki to help others... maybe in a jython for dummies section...lol :) > > Thanks in advance, > > Greg Moore > QA Lead > ADP Dealer Services > > > > This message and any attachments are intended only for the use of the addressee and may contain information that is privileged and confidential. If the reader of the message is not the intended recipient or an authorized representative of the intended recipient, you are hereby notified that any dissemination of this communication is strictly prohibited. If you have received this communication in error, please notify us immediately by e-mail and delete the message and any attachments from your system. > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Splunk Inc. > Still grepping through log files to find problems? Stop. > Now Search log events and configuration files using AJAX and a browser. > Download your FREE copy of Splunk now >> http://get.splunk.com/ > _______________________________________________ > Jython-users mailing list > Jyt...@li... > https://lists.sourceforge.net/lists/listinfo/jython-users > |
From: Oti <oh...@gm...> - 2007-07-28 08:12:39
|
In addition to what Charlie said: Concerning the scripts you developed, the very simplest way is to add them to the standalone jython.jar, beside the standard scripts in /Lib folder So this would boil down to - having your scripts inside standalone jython.jar - having all the .jars you need on the classpath (including standalone jython.jar) - start java with the appropriate -cp (-classpath) option best wishes, Oti. On 7/28/07, Charlie Groves <cha...@gm...> wrote: > I just include a little bat and sh script in the tars and zips I > distribute. The script just sets up the classpath with all the jars I > need and passes that to java with -cp. That's a pretty standard thing > for command line Java tools to do, it isn't specific to Jython. If > you're going to do that, you can't use -jar though. Just add the > jython jar to the things you've added to the classpath and give > Jython's main class, org.python.util.jython, explicitly. > > Charlie > > On 7/27/07, Moore, Greg <Gre...@ad...> wrote: > > Hi, > > > > What do I need to do so that people that don't have Jython installed are > > able to use the scripts I've developed? These scripts also need 3rd > > party jars inorder to work. I've tried all sorts of things with no > > success at all > > > > No class path was set at this point. As you can see below I'm using > > Jython 2.2rc2 and java 1.5 on Windows XP. I've renamed the standalone > > Jar to jythonStandalone.jar > > > > C:\dist\soaptest>java.exe -jar ..\jythonStandalone.jar > > Jython 2.2rc2 on java1.5.0_11 > > Type "copyright", "credits" or "license" for more information. > > >>> import sys > > >>> dir(sys) > > [ you know what happens with the dir() command ] > > >>> sys.add_package('./jars/dom4j-1.6.1.jar') > > <java package /jars/dom4j-1.6.1.jar 1> > > >>> from org.dom4j import * > > Traceback (innermost last): > > File "<console>", line 1, in ? > > ImportError: no module named dom4j > > >>> sys.packageManager.addJar('..\\jars\dom4j-1.6.1.jar', 1) > > >>> from dom4j import * > > Traceback (innermost last): > > File "<console>", line 1, in ? > > ImportError: no module named dom4j > > >>> sys.packageManager.addJarDir('..\\jars', 1) > > >>> from dom4j import * > > Traceback (innermost last): > > File "<console>", line 1, in ? > > ImportError: no module named dom4j > > >>> sys.packageManager.addJarDir('..\\jars\', 1) > > Traceback (innermost last): > > (no code object) at line 0 > > File "<console>", line 2 > > SyntaxError: Lexical error at line 2, column 0. Encountered: <EOF> > > after : "" > > >>> > > > > What I really what to know is how to do any of these lines work. Or do I > > have to install jython on every single computer? > > > > I'll even promise that if I get an answer that works I'll add it to the > > Wiki to help others... maybe in a jython for dummies section...lol :) > > > > Thanks in advance, > > > > Greg Moore > > QA Lead > > ADP Dealer Services > > > > > > > > This message and any attachments are intended only for the use of the addressee and may contain information that is privileged and confidential. If the reader of the message is not the intended recipient or an authorized representative of the intended recipient, you are hereby notified that any dissemination of this communication is strictly prohibited. If you have received this communication in error, please notify us immediately by e-mail and delete the message and any attachments from your system. > > > > ------------------------------------------------------------------------- > > This SF.net email is sponsored by: Splunk Inc. > > Still grepping through log files to find problems? Stop. > > Now Search log events and configuration files using AJAX and a browser. > > Download your FREE copy of Splunk now >> http://get.splunk.com/ > > _______________________________________________ > > Jython-users mailing list > > Jyt...@li... > > https://lists.sourceforge.net/lists/listinfo/jython-users > > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Splunk Inc. > Still grepping through log files to find problems? Stop. > Now Search log events and configuration files using AJAX and a browser. > Download your FREE copy of Splunk now >> http://get.splunk.com/ > _______________________________________________ > Jython-users mailing list > Jyt...@li... > https://lists.sourceforge.net/lists/listinfo/jython-users > |
From: Moore, G. <Gre...@ad...> - 2007-07-31 19:33:41
|
Thanks to all that replied. I really appreciate the comments. I didn't know that -jar and -cp were mutually exclusive. Thanks Charlie. Astigmatic: yes, but there were problems. Since jythonc, in its current form, is going away I think other ways may be better. Oti: I've tried to add files to the standalone jython jar file using "jar -u jython.jar -C someDir *.class" and then it just appears to hang. I've also tried different permutations of the above line. Using *.py and different Jar options. Hitting ^C to terminate it just results in a great number of beeps from the pc speaker (I'm using windows XP). I looked at the jython ant script to try and figure out what I was doing wrong and found out I need to learn more about ant. :) Regards,=20 Greg. -----Original Message----- From: Oti [mailto:oh...@gm...]=20 Sent: Saturday, July 28, 2007 1:13 AM To: Charlie Groves Cc: Moore, Greg; jyt...@li... Subject: Re: [Jython-users] How do I make this easily usable by others? In addition to what Charlie said: Concerning the scripts you developed, the very simplest way is to add them to the standalone jython.jar, beside the standard scripts in /Lib folder So this would boil down to - having your scripts inside standalone jython.jar - having all the .jars you need on the classpath (including standalone jython.jar) - start java with the appropriate -cp (-classpath) option best wishes, Oti. On 7/28/07, Charlie Groves <cha...@gm...> wrote: > I just include a little bat and sh script in the tars and zips I > distribute. The script just sets up the classpath with all the jars I > need and passes that to java with -cp. That's a pretty standard thing > for command line Java tools to do, it isn't specific to Jython. If > you're going to do that, you can't use -jar though. Just add the > jython jar to the things you've added to the classpath and give > Jython's main class, org.python.util.jython, explicitly. > > Charlie > > On 7/27/07, Moore, Greg <Gre...@ad...> wrote: > > Hi, > > > > What do I need to do so that people that don't have Jython installed are > > able to use the scripts I've developed? These scripts also need 3rd > > party jars inorder to work. I've tried all sorts of things with no > > success at all > > > > No class path was set at this point. As you can see below I'm using > > Jython 2.2rc2 and java 1.5 on Windows XP. I've renamed the standalone > > Jar to jythonStandalone.jar > > > > C:\dist\soaptest>java.exe -jar ..\jythonStandalone.jar > > Jython 2.2rc2 on java1.5.0_11 > > Type "copyright", "credits" or "license" for more information. > > >>> import sys > > >>> dir(sys) > > [ you know what happens with the dir() command ] > > >>> sys.add_package('./jars/dom4j-1.6.1.jar') > > <java package /jars/dom4j-1.6.1.jar 1> > > >>> from org.dom4j import * > > Traceback (innermost last): > > File "<console>", line 1, in ? > > ImportError: no module named dom4j > > >>> sys.packageManager.addJar('..\\jars\dom4j-1.6.1.jar', 1) > > >>> from dom4j import * > > Traceback (innermost last): > > File "<console>", line 1, in ? > > ImportError: no module named dom4j > > >>> sys.packageManager.addJarDir('..\\jars', 1) > > >>> from dom4j import * > > Traceback (innermost last): > > File "<console>", line 1, in ? > > ImportError: no module named dom4j > > >>> sys.packageManager.addJarDir('..\\jars\', 1) > > Traceback (innermost last): > > (no code object) at line 0 > > File "<console>", line 2 > > SyntaxError: Lexical error at line 2, column 0. Encountered: <EOF> > > after : "" > > >>> > > > > What I really what to know is how to do any of these lines work. Or do I > > have to install jython on every single computer? > > > > I'll even promise that if I get an answer that works I'll add it to the > > Wiki to help others... maybe in a jython for dummies section...lol :) > > > > Thanks in advance, > > > > Greg Moore > > QA Lead > > ADP Dealer Services > > > > > > > > This message and any attachments are intended only for the use of the addressee and may contain information that is privileged and confidential. If the reader of the message is not the intended recipient or an authorized representative of the intended recipient, you are hereby notified that any dissemination of this communication is strictly prohibited. If you have received this communication in error, please notify us immediately by e-mail and delete the message and any attachments from your system. > > > > ------------------------------------------------------------------------ - > > This SF.net email is sponsored by: Splunk Inc. > > Still grepping through log files to find problems? Stop. > > Now Search log events and configuration files using AJAX and a browser. > > Download your FREE copy of Splunk now >> http://get.splunk.com/ > > _______________________________________________ > > Jython-users mailing list > > Jyt...@li... > > https://lists.sourceforge.net/lists/listinfo/jython-users > > > > ------------------------------------------------------------------------ - > This SF.net email is sponsored by: Splunk Inc. > Still grepping through log files to find problems? Stop. > Now Search log events and configuration files using AJAX and a browser. > Download your FREE copy of Splunk now >> http://get.splunk.com/ > _______________________________________________ > Jython-users mailing list > Jyt...@li... > https://lists.sourceforge.net/lists/listinfo/jython-users > This message and any attachments are intended only for the use of the add= ressee and may contain information that is privileged and confidential. I= f the reader of the message is not the intended recipient or an authorize= d representative of the intended recipient, you are hereby notified that = any dissemination of this communication is strictly prohibited. If you ha= ve received this communication in error, please notify us immediately by = e-mail and delete the message and any attachments from your system. |
From: Oti <oh...@gm...> - 2007-07-31 20:51:23
|
Greg, I'm too not very familiar with the jar command. Usually I manipulate .jar files with a tool like: - midnight commander (on Linux) - servant salamander or total commander (on Windows) total commander: http://www.ghisler.com/index.htm servant salamander: http://www.altap.cz/download.html#sal25 What I meant is to place the *.py files below directory /Lib in jython.jar, as described here: http://jython.extreme.st/talk/talk.html (search for Script Deployment) If you do that, you don't have to mess with python.path and the like. Imports should just work. best wishes, Oti. On 7/31/07, Moore, Greg <Gre...@ad...> wrote: > > Thanks to all that replied. I really appreciate the comments. > I didn't know that -jar and -cp were mutually exclusive. Thanks > Charlie. > > Astigmatic: yes, but there were problems. Since jythonc, in its current > form, is going away I think other ways may be better. > > Oti: I've tried to add files to the standalone jython jar file using > "jar -u jython.jar -C someDir *.class" and then it just appears to hang. > I've also tried different permutations of the above line. Using *.py and > different Jar options. Hitting ^C to terminate it just results in a > great number of beeps from the pc speaker (I'm using windows XP). I > looked at the jython ant script to try and figure out what I was doing > wrong and found out I need to learn more about ant. :) > > Regards, > Greg. > > > -----Original Message----- > From: Oti [mailto:oh...@gm...] > Sent: Saturday, July 28, 2007 1:13 AM > To: Charlie Groves > Cc: Moore, Greg; jyt...@li... > Subject: Re: [Jython-users] How do I make this easily usable by others? > > In addition to what Charlie said: > Concerning the scripts you developed, the very simplest way is to add > them to the standalone jython.jar, beside the standard scripts in /Lib > folder > > So this would boil down to > - having your scripts inside standalone jython.jar > - having all the .jars you need on the classpath (including > standalone jython.jar) > - start java with the appropriate -cp (-classpath) option > > best wishes, > Oti. > > On 7/28/07, Charlie Groves <cha...@gm...> wrote: > > I just include a little bat and sh script in the tars and zips I > > distribute. The script just sets up the classpath with all the jars I > > need and passes that to java with -cp. That's a pretty standard thing > > for command line Java tools to do, it isn't specific to Jython. If > > you're going to do that, you can't use -jar though. Just add the > > jython jar to the things you've added to the classpath and give > > Jython's main class, org.python.util.jython, explicitly. > > > > Charlie > > > > On 7/27/07, Moore, Greg <Gre...@ad...> wrote: > > > Hi, > > > > > > What do I need to do so that people that don't have Jython installed > are > > > able to use the scripts I've developed? These scripts also need 3rd > > > party jars inorder to work. I've tried all sorts of things with no > > > success at all > > > > > > No class path was set at this point. As you can see below I'm using > > > Jython 2.2rc2 and java 1.5 on Windows XP. I've renamed the > standalone > > > Jar to jythonStandalone.jar > > > > > > C:\dist\soaptest>java.exe -jar ..\jythonStandalone.jar > > > Jython 2.2rc2 on java1.5.0_11 > > > Type "copyright", "credits" or "license" for more information. > > > >>> import sys > > > >>> dir(sys) > > > [ you know what happens with the dir() command ] > > > >>> sys.add_package('./jars/dom4j-1.6.1.jar') > > > <java package /jars/dom4j-1.6.1.jar 1> > > > >>> from org.dom4j import * > > > Traceback (innermost last): > > > File "<console>", line 1, in ? > > > ImportError: no module named dom4j > > > >>> sys.packageManager.addJar('..\\jars\dom4j-1.6.1.jar', 1) > > > >>> from dom4j import * > > > Traceback (innermost last): > > > File "<console>", line 1, in ? > > > ImportError: no module named dom4j > > > >>> sys.packageManager.addJarDir('..\\jars', 1) > > > >>> from dom4j import * > > > Traceback (innermost last): > > > File "<console>", line 1, in ? > > > ImportError: no module named dom4j > > > >>> sys.packageManager.addJarDir('..\\jars\', 1) > > > Traceback (innermost last): > > > (no code object) at line 0 > > > File "<console>", line 2 > > > SyntaxError: Lexical error at line 2, column 0. Encountered: <EOF> > > > after : "" > > > >>> > > > > > > What I really what to know is how to do any of these lines work. Or > do I > > > have to install jython on every single computer? > > > > > > I'll even promise that if I get an answer that works I'll add it to > the > > > Wiki to help others... maybe in a jython for dummies section...lol > :) > > > > > > Thanks in advance, > > > > > > Greg Moore > > > QA Lead > > > ADP Dealer Services > > > > > > > > > > > > This message and any attachments are intended only for the use of > the addressee and may contain information that is privileged and > confidential. If the reader of the message is not the intended recipient > or an authorized representative of the intended recipient, you are > hereby notified that any dissemination of this communication is strictly > prohibited. If you have received this communication in error, please > notify us immediately by e-mail and delete the message and any > attachments from your system. > > > > > > > ------------------------------------------------------------------------ > - > > > This SF.net email is sponsored by: Splunk Inc. > > > Still grepping through log files to find problems? Stop. > > > Now Search log events and configuration files using AJAX and a > browser. > > > Download your FREE copy of Splunk now >> http://get.splunk.com/ > > > _______________________________________________ > > > Jython-users mailing list > > > Jyt...@li... > > > https://lists.sourceforge.net/lists/listinfo/jython-users > > > > > > > > ------------------------------------------------------------------------ > - > > This SF.net email is sponsored by: Splunk Inc. > > Still grepping through log files to find problems? Stop. > > Now Search log events and configuration files using AJAX and a > browser. > > Download your FREE copy of Splunk now >> http://get.splunk.com/ > > _______________________________________________ > > Jython-users mailing list > > Jyt...@li... > > https://lists.sourceforge.net/lists/listinfo/jython-users > > > > > This message and any attachments are intended only for the use of the addressee and may contain information that is privileged and confidential. If the reader of the message is not the intended recipient or an authorized representative of the intended recipient, you are hereby notified that any dissemination of this communication is strictly prohibited. If you have received this communication in error, please notify us immediately by e-mail and delete the message and any attachments from your system. > |
From: Moore, G. <Gre...@ad...> - 2007-08-01 19:08:50
|
Hello Again, I just wanted to let you know I was successful, thanks to all your help (Charlie and Odi). I was able to put all the java classes I needed under \org and the *.py under \lib and it all worked wonderfully. I now have a jumbo all in one jar file that works great! Odi I'd like you permission to use some of the info on your web page to create a wiki entry that documents what I did so it might help others. However, I did notice something odd when I was trying the classpath method. This gets a little lengthy sorry about that. I get different results when typing in commands into the interpreter then I do when I specify a script on the commandline. This only seems to happen with the standalone jar I did not see this with the non-standalone installation. Let me explain a little further: On Windows XP sp2 with the following Environment: PATH=3D"c:\Program Files\Java\jre1.5.0_11\bin" CLASSPATH=3Dc:\dist\lib\commons-codec-1.3.jar;c:\dist\lib\commons-logging= - 1.0.4.jar;c:\dist\lib\commons-httpclient-3.1-rc1.jar;c:\dist\lib\dom4j-1 =2E6.1.jar;c:\dist\lib\jaxen-1.1.1.jar;c:\dist\lib\log4j-.2.8.jar;"c:\Pro= g ram Files\Java\jre1.5.0_11\lib\rt.jar" This is what I saw: C:\jython2.2>java -cp %classpath%;.\jythonStandalone.jar org.python.util.jython Jython 2.2rc2 on java1.5.0_11 Type "copyright", "credits" or "license" for more information. >>> from javax import swing Traceback (innermost last): File "<console>", line 1, in ? ImportError: cannot import name swing >>> from javax import * Traceback (innermost last): File "<console>", line 1, in ? ImportError: no module named javax >>> ^Z However everything works fine if I use, for example, the Jython Console from http://code.google.com/p/jythonconsole/ using a similar command to the one above: C:\jython2.2>java -cp %classpath%;.\jythonStandalone.jar org.python.util.jython c:\Libs\jythonconsole-0.0.4\console.py=20 At the top of console.py there are a bunch of swing imports. Just for the purposes of completeness, If I type in a line like "from java import *" or "from java.lang import String" everything works fine and there are no import errors. Here are some other tests I ran if your interested C:\jython2.2>java -cp %classpath%;.\jythonStandalone.jar org.python.util.jython Jython 2.2rc2 on java1.5.0_11 Type "copyright", "credits" or "license" for more information. >>> from org.dom4j import * Traceback (innermost last): File "<console>", line 1, in ? ImportError: no module named dom4j >>> from org.apache.commons.httpclient import * Traceback (innermost last): File "<console>", line 1, in ? ImportError: no module named apache >>> from org.apache.commons import * Traceback (innermost last): File "<console>", line 1, in ? ImportError: no module named apache >>> import org >>> dir <built-in function dir> >>> dir(org) ['__name__', 'python'] >>> ^Z Now Using the SAME environment settings but the NON standalone jar every thing seems to work just fine. As shown below. C:\jython2.2>java -cp %classpath%;.\jython.jar org.python.util.jython *sys-package-mgr*: processing new jar, 'C:\dist\lib\commons-codec-1.3.jar' *sys-package-mgr*: processing new jar, 'C:\dist\lib\commons-logging-1.0.4.jar' *sys-package-mgr*: processing new jar, 'C:\dist\lib\commons-httpclient-3.1-rc1.jar' *sys-package-mgr*: processing new jar, 'C:\dist\lib\dom4j-1.6.1.jar' *sys-package-mgr*: processing new jar, 'C:\dist\lib\jaxen-1.1.1.jar' *sys-package-mgr*: processing new jar, 'C:\dist\lib\log4j-1.2.8.jar' *sys-package-mgr*: processing new jar, 'C:\Program Files\Java\jre1.5.0_11\lib\rt.jar' *sys-package-mgr*: processing new jar, 'C:\Program Files\Java\jre1.5.0_11\lib\jsse.jar' *sys-package-mgr*: processing new jar, 'C:\Program Files\Java\jre1.5.0_11\lib\jce.jar' *sys-package-mgr*: processing new jar, 'C:\Program Files\Java\jre1.5.0_11\lib\ext\dnsns.jar' *sys-package-mgr*: processing new jar, 'C:\Program Files\Java\jre1.5.0_11\lib\ext\sunjce_provider.jar' *sys-package-mgr*: processing new jar, 'C:\Program Files\Java\jre1.5.0_11\lib\ext\sunpkcs11.jar' Jython 2.2rc2 on java1.5.0_11 Type "copyright", "credits" or "license" for more information. >>> from javax import * >>> Sorry this got a little longwinded. But I don't know a more concise way of documenting it. So I guess the question is... Bug or feature? I couldn't test this with 2.1 because this appears to be specific to the standalone jar and it was unavailable with the 2.1 release. Regards, Greg. This message and any attachments are intended only for the use of the add= ressee and may contain information that is privileged and confidential. I= f the reader of the message is not the intended recipient or an authorize= d representative of the intended recipient, you are hereby notified that = any dissemination of this communication is strictly prohibited. If you ha= ve received this communication in error, please notify us immediately by = e-mail and delete the message and any attachments from your system. |
From: David H. <dav...@gm...> - 2007-08-01 21:17:24
|
On 8/1/07, Moore, Greg <Gre...@ad...> wrote: > >>> from javax import swing > Traceback (innermost last): > File "<console>", line 1, in ? > ImportError: cannot import name swing > >>> from javax import * > Traceback (innermost last): > File "<console>", line 1, in ? > ImportError: no module named javax Try: > import sys > sys.add_package('javax.swing') > from javax.swing import JFrame If this works, then the problem is that the javax.swing package is available on the classpath, but Jython did not find it in its initial package scan. See: http://wiki.python.org/jython/PackageScanning If Jython didn't find a Java package in its initial package scan, then it assumes it doesn't exist until you tell it otherwise by calling sys.add_package(). I don't know if import * works for packages that weren't scanned. If sys.add_package() doesn't help, then javax.swing.JFrame isn't available to the class loader, in which case it's probably a classpath or class loader issue. -David |
From: Oti <oh...@gm...> - 2007-08-01 23:27:50
|
Greg, that is completely ok, and more a feature than a bug. When using standalone .jar, there are two rules of thumb to remember: - package scanning is off by default - use explicit java imports By explicit java imports, I mean "mentioning both package and class". Examples: from javax.swing import Frame import javax.swing.Frame A little explanation (let's stick to the swing example): If a package (javax.swing) is not yet known to the caller's classloader (Package.getPackages()), and you do a non-explicit import like: from javax import swing import javax.swing from javax.swing import * then we humans know that javax.swing is a java package, but jython does not, and has no way of finding out programmatically. (Well, I was thinking about making an exception to this rule and recognizing the core java packages, but am not yet decided if "deferring the confusion" is really what we want. We would then recognize non-explicit imports of core packages, but fail on all other packages). My current believe at the moment is: use the above two rules of thumb to stay on the safe side. I hope these explanations were a bit of help. best wishes, Oti. P.S. You have my permission to use the content of my website (the code for JyClass is under the Python Software License, the rest of the examples are public domain). So please feel free to use it, and let me know if I can make it better. On 8/1/07, Moore, Greg <Gre...@ad...> wrote: > Hello Again, > > I just wanted to let you know I was successful, thanks to all your help > (Charlie and Odi). I was able to put all the java classes I needed under > \org and the *.py under \lib and it all worked wonderfully. I now have a > jumbo all in one jar file that works great! Odi I'd like you permission > to use some of the info on your web page to create a wiki entry that > documents what I did so it might help others. > > However, I did notice something odd when I was trying the classpath > method. > This gets a little lengthy sorry about that. > > I get different results when typing in commands into the interpreter > then I do when I specify a script on the commandline. This only seems to > happen with the standalone jar I did not see this with the > non-standalone installation. Let me explain a little further: > > On Windows XP sp2 with the following Environment: > > PATH="c:\Program Files\Java\jre1.5.0_11\bin" > CLASSPATH=c:\dist\lib\commons-codec-1.3.jar;c:\dist\lib\commons-logging- > 1.0.4.jar;c:\dist\lib\commons-httpclient-3.1-rc1.jar;c:\dist\lib\dom4j-1 > .6.1.jar;c:\dist\lib\jaxen-1.1.1.jar;c:\dist\lib\log4j-.2.8.jar;"c:\Prog > ram Files\Java\jre1.5.0_11\lib\rt.jar" > > This is what I saw: > C:\jython2.2>java -cp %classpath%;.\jythonStandalone.jar > org.python.util.jython > > Jython 2.2rc2 on java1.5.0_11 > Type "copyright", "credits" or "license" for more information. > >>> from javax import swing > Traceback (innermost last): > File "<console>", line 1, in ? > ImportError: cannot import name swing > >>> from javax import * > Traceback (innermost last): > File "<console>", line 1, in ? > ImportError: no module named javax > >>> ^Z > > However everything works fine if I use, for example, the Jython Console > from http://code.google.com/p/jythonconsole/ using a similar command to > the one above: C:\jython2.2>java -cp %classpath%;.\jythonStandalone.jar > org.python.util.jython c:\Libs\jythonconsole-0.0.4\console.py > > At the top of console.py there are a bunch of swing imports. > Just for the purposes of completeness, If I type in a line like "from > java import *" or "from java.lang import String" everything works fine > and there are no import errors. > > Here are some other tests I ran if your interested > > C:\jython2.2>java -cp %classpath%;.\jythonStandalone.jar > org.python.util.jython > Jython 2.2rc2 on java1.5.0_11 > Type "copyright", "credits" or "license" for more information. > >>> from org.dom4j import * > Traceback (innermost last): > File "<console>", line 1, in ? > ImportError: no module named dom4j > >>> from org.apache.commons.httpclient import * > Traceback (innermost last): > File "<console>", line 1, in ? > ImportError: no module named apache > >>> from org.apache.commons import * > Traceback (innermost last): > File "<console>", line 1, in ? > ImportError: no module named apache > >>> import org > >>> dir > <built-in function dir> > >>> dir(org) > ['__name__', 'python'] > >>> ^Z > > Now Using the SAME environment settings but the NON standalone jar every > thing seems to work just fine. As shown below. > > C:\jython2.2>java -cp %classpath%;.\jython.jar org.python.util.jython > *sys-package-mgr*: processing new jar, > 'C:\dist\lib\commons-codec-1.3.jar' > *sys-package-mgr*: processing new jar, > 'C:\dist\lib\commons-logging-1.0.4.jar' > *sys-package-mgr*: processing new jar, > 'C:\dist\lib\commons-httpclient-3.1-rc1.jar' > *sys-package-mgr*: processing new jar, 'C:\dist\lib\dom4j-1.6.1.jar' > *sys-package-mgr*: processing new jar, 'C:\dist\lib\jaxen-1.1.1.jar' > *sys-package-mgr*: processing new jar, 'C:\dist\lib\log4j-1.2.8.jar' > *sys-package-mgr*: processing new jar, 'C:\Program > Files\Java\jre1.5.0_11\lib\rt.jar' > *sys-package-mgr*: processing new jar, 'C:\Program > Files\Java\jre1.5.0_11\lib\jsse.jar' > *sys-package-mgr*: processing new jar, 'C:\Program > Files\Java\jre1.5.0_11\lib\jce.jar' > *sys-package-mgr*: processing new jar, 'C:\Program > Files\Java\jre1.5.0_11\lib\ext\dnsns.jar' > *sys-package-mgr*: processing new jar, 'C:\Program > Files\Java\jre1.5.0_11\lib\ext\sunjce_provider.jar' > *sys-package-mgr*: processing new jar, 'C:\Program > Files\Java\jre1.5.0_11\lib\ext\sunpkcs11.jar' > Jython 2.2rc2 on java1.5.0_11 > Type "copyright", "credits" or "license" for more information. > >>> from javax import * > >>> > > Sorry this got a little longwinded. But I don't know a more concise way > of documenting it. > > So I guess the question is... Bug or feature? I couldn't test this with > 2.1 because this appears to be specific to the standalone jar and it was > unavailable with the 2.1 release. > > Regards, > Greg. > > > This message and any attachments are intended only for the use of the addressee and may contain information that is privileged and confidential. If the reader of the message is not the intended recipient or an authorized representative of the intended recipient, you are hereby notified that any dissemination of this communication is strictly prohibited. If you have received this communication in error, please notify us immediately by e-mail and delete the message and any attachments from your system. > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Splunk Inc. > Still grepping through log files to find problems? Stop. > Now Search log events and configuration files using AJAX and a browser. > Download your FREE copy of Splunk now >> http://get.splunk.com/ > _______________________________________________ > Jython-users mailing list > Jyt...@li... > https://lists.sourceforge.net/lists/listinfo/jython-users > |
From: Moore, G. <Gre...@ad...> - 2007-08-01 23:43:03
|
Odi (and David) Thanks for the explanation. I understand more then I did earlier in the day.=20 I also understand why console.py worked and my tests didn't. I think I agree with you about staying on the safe side. The funny thing is that I usually use explicit imports but when I'm doing a quick test I get lazy and use from ... import *. I'm going to re-read the package scanning page the David pointed me to. I think I understand better it this time. Regards, Greg. -----Original Message----- From: Oti [mailto:oh...@gm...]=20 Sent: Wednesday, August 01, 2007 4:28 PM To: Moore, Greg Cc: jyt...@li... Subject: Re: [Jython-users] How do I make this easily usable by others? possible bug? Greg, that is completely ok, and more a feature than a bug. When using standalone .jar, there are two rules of thumb to remember: - package scanning is off by default - use explicit java imports By explicit java imports, I mean "mentioning both package and class". Examples: from javax.swing import Frame import javax.swing.Frame A little explanation (let's stick to the swing example): If a package (javax.swing) is not yet known to the caller's classloader (Package.getPackages()), and you do a non-explicit import like: from javax import swing import javax.swing from javax.swing import * then we humans know that javax.swing is a java package, but jython does not, and has no way of finding out programmatically. (Well, I was thinking about making an exception to this rule and recognizing the core java packages, but am not yet decided if "deferring the confusion" is really what we want. We would then recognize non-explicit imports of core packages, but fail on all other packages). My current believe at the moment is: use the above two rules of thumb to stay on the safe side. I hope these explanations were a bit of help. best wishes, Oti. P.S. You have my permission to use the content of my website (the code for JyClass is under the Python Software License, the rest of the examples are public domain). So please feel free to use it, and let me know if I can make it better. On 8/1/07, Moore, Greg <Gre...@ad...> wrote: > Hello Again, > > I just wanted to let you know I was successful, thanks to all your help > (Charlie and Odi). I was able to put all the java classes I needed under > \org and the *.py under \lib and it all worked wonderfully. I now have a > jumbo all in one jar file that works great! Odi I'd like you permission > to use some of the info on your web page to create a wiki entry that > documents what I did so it might help others. > > However, I did notice something odd when I was trying the classpath > method. > This gets a little lengthy sorry about that. > > I get different results when typing in commands into the interpreter > then I do when I specify a script on the commandline. This only seems to > happen with the standalone jar I did not see this with the > non-standalone installation. Let me explain a little further: > > On Windows XP sp2 with the following Environment: > > PATH=3D"c:\Program Files\Java\jre1.5.0_11\bin" > CLASSPATH=3Dc:\dist\lib\commons-codec-1.3.jar;c:\dist\lib\commons-logging= - > 1.0.4.jar;c:\dist\lib\commons-httpclient-3.1-rc1.jar;c:\dist\lib\dom4j-1 > =2E6.1.jar;c:\dist\lib\jaxen-1.1.1.jar;c:\dist\lib\log4j-.2.8.jar;"c:\Pro= g > ram Files\Java\jre1.5.0_11\lib\rt.jar" > > This is what I saw: > C:\jython2.2>java -cp %classpath%;.\jythonStandalone.jar > org.python.util.jython > > Jython 2.2rc2 on java1.5.0_11 > Type "copyright", "credits" or "license" for more information. > >>> from javax import swing > Traceback (innermost last): > File "<console>", line 1, in ? > ImportError: cannot import name swing > >>> from javax import * > Traceback (innermost last): > File "<console>", line 1, in ? > ImportError: no module named javax > >>> ^Z > > However everything works fine if I use, for example, the Jython Console > from http://code.google.com/p/jythonconsole/ using a similar command to > the one above: C:\jython2.2>java -cp %classpath%;.\jythonStandalone.jar > org.python.util.jython c:\Libs\jythonconsole-0.0.4\console.py > > At the top of console.py there are a bunch of swing imports. > Just for the purposes of completeness, If I type in a line like "from > java import *" or "from java.lang import String" everything works fine > and there are no import errors. > > Here are some other tests I ran if your interested > > C:\jython2.2>java -cp %classpath%;.\jythonStandalone.jar > org.python.util.jython > Jython 2.2rc2 on java1.5.0_11 > Type "copyright", "credits" or "license" for more information. > >>> from org.dom4j import * > Traceback (innermost last): > File "<console>", line 1, in ? > ImportError: no module named dom4j > >>> from org.apache.commons.httpclient import * > Traceback (innermost last): > File "<console>", line 1, in ? > ImportError: no module named apache > >>> from org.apache.commons import * > Traceback (innermost last): > File "<console>", line 1, in ? > ImportError: no module named apache > >>> import org > >>> dir > <built-in function dir> > >>> dir(org) > ['__name__', 'python'] > >>> ^Z > > Now Using the SAME environment settings but the NON standalone jar every > thing seems to work just fine. As shown below. > > C:\jython2.2>java -cp %classpath%;.\jython.jar org.python.util.jython > *sys-package-mgr*: processing new jar, > 'C:\dist\lib\commons-codec-1.3.jar' > *sys-package-mgr*: processing new jar, > 'C:\dist\lib\commons-logging-1.0.4.jar' > *sys-package-mgr*: processing new jar, > 'C:\dist\lib\commons-httpclient-3.1-rc1.jar' > *sys-package-mgr*: processing new jar, 'C:\dist\lib\dom4j-1.6.1.jar' > *sys-package-mgr*: processing new jar, 'C:\dist\lib\jaxen-1.1.1.jar' > *sys-package-mgr*: processing new jar, 'C:\dist\lib\log4j-1.2.8.jar' > *sys-package-mgr*: processing new jar, 'C:\Program > Files\Java\jre1.5.0_11\lib\rt.jar' > *sys-package-mgr*: processing new jar, 'C:\Program > Files\Java\jre1.5.0_11\lib\jsse.jar' > *sys-package-mgr*: processing new jar, 'C:\Program > Files\Java\jre1.5.0_11\lib\jce.jar' > *sys-package-mgr*: processing new jar, 'C:\Program > Files\Java\jre1.5.0_11\lib\ext\dnsns.jar' > *sys-package-mgr*: processing new jar, 'C:\Program > Files\Java\jre1.5.0_11\lib\ext\sunjce_provider.jar' > *sys-package-mgr*: processing new jar, 'C:\Program > Files\Java\jre1.5.0_11\lib\ext\sunpkcs11.jar' > Jython 2.2rc2 on java1.5.0_11 > Type "copyright", "credits" or "license" for more information. > >>> from javax import * > >>> > > Sorry this got a little longwinded. But I don't know a more concise way > of documenting it. > > So I guess the question is... Bug or feature? I couldn't test this with > 2.1 because this appears to be specific to the standalone jar and it was > unavailable with the 2.1 release. > > Regards, > Greg. > > > This message and any attachments are intended only for the use of the addressee and may contain information that is privileged and confidential. If the reader of the message is not the intended recipient or an authorized representative of the intended recipient, you are hereby notified that any dissemination of this communication is strictly prohibited. If you have received this communication in error, please notify us immediately by e-mail and delete the message and any attachments from your system. > > ------------------------------------------------------------------------ - > This SF.net email is sponsored by: Splunk Inc. > Still grepping through log files to find problems? Stop. > Now Search log events and configuration files using AJAX and a browser. > Download your FREE copy of Splunk now >> http://get.splunk.com/ > _______________________________________________ > Jython-users mailing list > Jyt...@li... > https://lists.sourceforge.net/lists/listinfo/jython-users > This message and any attachments are intended only for the use of the add= ressee and may contain information that is privileged and confidential. I= f the reader of the message is not the intended recipient or an authorize= d representative of the intended recipient, you are hereby notified that = any dissemination of this communication is strictly prohibited. If you ha= ve received this communication in error, please notify us immediately by = e-mail and delete the message and any attachments from your system. |
From: Frank W. <fwi...@gm...> - 2007-08-02 17:21:55
|
On 8/1/07, Oti <oh...@gm...> wrote: > A little explanation (let's stick to the swing example): > If a package (javax.swing) is not yet known to the caller's > classloader (Package.getPackages()), and you do a non-explicit import > like: > from javax import swing > import javax.swing > from javax.swing import * > then we humans know that javax.swing is a java package, but jython > does not, and has no way of finding out programmatically. > (Well, I was thinking about making an exception to this rule and > recognizing the core java packages, but am not yet decided if > "deferring the confusion" is really what we want. We would then > recognize non-explicit imports of core packages, but fail on all other > packages). Personally I think doing this would cause more confusion than it would save -- I'd prefer it if we have the same policy regardless of whether a package is "core" to java or not... -Frank |