From: D-Man <ds...@ri...> - 2001-07-18 13:11:36
|
On Wed, Jul 18, 2001 at 12:03:30PM +0200, Kevin McNamee wrote: | | I have built a jar file from my python scripts | > cd $HOME/work | > jythonc -a -j demo.jar Gui.py | | The GUI uses several gif files stored in 'icons', e.g. | rightIcon = swing.ImageIcon("icons/right.gif") ^^^^^^^^^^^^^^^^^ | | So I add these manually to the demo.jar | > jar -uf demo.jar icons | | I copy demo.jar to it's final location and run it | > cp demo.jar /tmp | > cd /tmp | > java -jar demo.jar | | The GUI starts, but none of the icons appear. If I create the icons | directory locally and copy the icons there, then everything works fine. | > mkdir icons | > cp $HOME/work/icons/* icons | > java -jar demo.jar | | Why is demo.jar looking in ./icons instead of in demo.jar? demo.jar doesn't look anywhere. Your app specifies to look in the filesystem (see highlighted path above). What you want is (in Java) : // you need the 'getResource' method with is found in instances of the // 'Class' class URL path = (new Object()).getClass().getResource( "/icons/right.gif" ) // now make the icon getting the gif from the url ImageIcon = new ImageIcon( path ) If you are doing it from the Jython side use : path = java.lang.Object().getClass().getResource( "/icons/right.gif") icon = javax.swing.ImageIcon( path ) and it should work. Be sure and print the url if it doesn't work so you can see where getResource() thinks that resource is. HTH, -D |