From: <bo...@hu...> - 2007-08-10 17:12:27
|
This example from '04 uses a 'flaw'(?) in earlier webstart versions which allows one to derive the full path name as it exists in the cache of the jar a resource is contained in. This derived path name is then passed to jython. I had not been able to find a way todo this for newer versions of webstart [1]. I found an open source project[2] which uses a webstart'd version to demonstrate [3] its capabilities. I will investigate the trickery they uesd.. [2] http://sourceforge.net/projects/cookxml/ [3] http://cookxml.yuanheng.org/cookjython/ [1] http://java.sun.com/javase/6/docs/technotes/guides/javaws/enhancemen ts6.html "Finally, the URL returned for calls to ClassLoader.getResource() is now the proper JAR URL of the item on the net. In previous versions, this URL returned was a jar url of the file url item in the cache. By extending URLClassLoader, the cached location (if it exists) is meaningless, and it allows Java Web Start to operate without caching." Thanks, Bob On Fri, 10 Aug 2007 08:10:32 -0700 David Huebel <dav...@gm...> wrote: >On 8/9/07, bo...@hu... <bo...@hu...> wrote: >> Has anyone gotten jython to work with webstart? >> > >Download the zip file linked on this page and take a look at the >ReadMe.txt file inside: > >http://personalpages.tds.net/~kent37/Python/JythonWebStart.html > >-David -- Click here for a free directory of employee development and training solutions. http://tagline.hushmail.com/fc/Ioyw6h4dDAoqDSKzF6yNiv5kalJs0GLdgnuTHLIKXHOLyoWSe8wime/ |
From: <bo...@hu...> - 2007-08-13 18:25:31
|
Not so much a 'correct' solution, but a working one. I'm including all needed python/jython files in the same jar. Essentially, I recreate this jar in the users home directory and include it as part of python.path. Jython has a 'file' to work with so its happy. Jython runs via Webstart, so I'm happy. Thanks, Bob On Fri, 10 Aug 2007 11:34:41 -0700 David Huebel <dav...@gm...> wrote: >On 8/10/07, bo...@hu... <bo...@hu...> wrote: >> This example from '04 uses a 'flaw'(?) in earlier webstart >versions >> which allows one to derive the full path name as it exists in >the >> cache of the jar a resource is contained in. This derived path >> name is then passed to jython. > >Hmmm, this is rather alarming, as this is the only way I know how >to >deploy Jython source in jar files. I knew it was incorrect but >hoped >that no one was creative enough to break it in real systems. > >Looking at PySystemState.initialize and PySystemState.initPath in >2.2rc2, it seems that Jython's standalone jar functionality >depends on >this hack also. If this is true, import of Jython modules won't >work >when Jython is running over Web Start. My understanding of Jython >is >pretty limited, though, so don't take my word for it. > >(The web start demo you linked to certainly works, but it loads >source >files as resources and feeds their contents to an interpreter. >It's >possible it doesn't import any Python modules at all, only Java >classes.) > >If you come up with a correct solution, please post it. > >-David -- Click here to become a professional counselor in less time than you think. http://tagline.hushmail.com/fc/Ioyw6h4fPKEyM6irTUTx8zWQVINIAvo1WaHX1k1ZLcsWNc1uKsGVZo/ |
From: David H. <dav...@gm...> - 2007-08-10 18:34:42
|
On 8/10/07, bo...@hu... <bo...@hu...> wrote: > This example from '04 uses a 'flaw'(?) in earlier webstart versions > which allows one to derive the full path name as it exists in the > cache of the jar a resource is contained in. This derived path > name is then passed to jython. Hmmm, this is rather alarming, as this is the only way I know how to deploy Jython source in jar files. I knew it was incorrect but hoped that no one was creative enough to break it in real systems. Looking at PySystemState.initialize and PySystemState.initPath in 2.2rc2, it seems that Jython's standalone jar functionality depends on this hack also. If this is true, import of Jython modules won't work when Jython is running over Web Start. My understanding of Jython is pretty limited, though, so don't take my word for it. (The web start demo you linked to certainly works, but it loads source files as resources and feeds their contents to an interpreter. It's possible it doesn't import any Python modules at all, only Java classes.) If you come up with a correct solution, please post it. -David |