From: Aaron L. <fir...@ho...> - 2005-06-18 23:33:57
|
How do I compile a jython applet so it doesn't trigger XP's ActiveX control warning? The applets on the following page work great: http://www.jython.org/applets/index.html So I copy/paste the source into test.py: from java.applet import Applet class HelloWorld(Applet): def paint(self, g): g.drawString("Hello from Jython!" 20, 30) (fix the bug with the missing comma before 20) Make a simple test.html file to load/display it: <html><body> <center> <applet code="HelloWorld" archive="test.jar" width="160" height="50"></applet> </center> </body></html> Then tried to compile it using the following: jythonc -c -j test.jar test.py It couldn't find my compiler, so I added the following to the registry file in my jython directory: python.jythonc.compiler = C:\\Dev\\jikes\\jikes.exe That gave me errors that it couldn't find java.lang, so I also added: python.jythonc.classpath = C:\\Program Files\\Java\\jre1.5.0_03\\lib\\rt.jar;C:\\Dev\\jython (This might be a good time to note that I'm using the latest jdk from Sun - 1.5 update 3 on Windows XP SP2.) Recompile, and now I get the dreaded red x. So I pop open the Sun Java Console window and see that it can't find my HelloWorld class. This seems to work fine in their example, but whatever -- I go ahead and rename my class to 'test' and set my 'code=test' in the html. Side question: What's the proper way to do this? Yay!, now the applet works. But it's running through some ActiveX Java VM rather than whatever friendly VM that the applets on the www.jython.org/applets page are running on. I thought maybe it was because I was compiling with 1.5, so I added the following to my registry file: python.jythonc.compileropts = -target 1.1 Still get the ActiveX warning. What's the secret to writing friendly applets in jython that don't require the people you share them with to install a separate java vm? I've tried all the above using sun's compiler (javac instead of jikes) to see if that made any difference, but still no dice. First person to write a decent jython applet tutorial gets a cookie. Thanks! (Bonus question: Why does python insist on requiring self.whatever - as opposed to making it implicit like c++/java? Jython is smart enough to convert self.width into self.getWidth(). Is there a jython switch automatically check for 'self' first? It seems like 80% of my bugs come from forgetting the 'self', and Eclipse/NetBeans jython integrations don't help much tracking these down it seems.) |
From: Aaron L. <fir...@ho...> - 2005-06-20 19:38:39
|
Partial answer to my own question. XP SP2 doesn't like running local content. http://www.phdcc.com/xpsp2.htm Wrapping my html in an hta seems to work nicely. ----- Original Message ----- From: "Aaron Leiby" <fir...@ho...> To: <jyt...@li...> Sent: Saturday, June 18, 2005 4:33 PM Subject: [Jython-users] Simple Applets > How do I compile a jython applet so it doesn't trigger XP's ActiveX > control warning? > > The applets on the following page work great: > http://www.jython.org/applets/index.html > > So I copy/paste the source into test.py: > > from java.applet import Applet > class HelloWorld(Applet): > def paint(self, g): > g.drawString("Hello from Jython!" 20, 30) > > (fix the bug with the missing comma before 20) > > Make a simple test.html file to load/display it: > > <html><body> > <center> > <applet code="HelloWorld" archive="test.jar" width="160" > height="50"></applet> > </center> > </body></html> > > Then tried to compile it using the following: > > jythonc -c -j test.jar test.py > > It couldn't find my compiler, so I added the following to the registry > file in my jython directory: > > python.jythonc.compiler = C:\\Dev\\jikes\\jikes.exe > > That gave me errors that it couldn't find java.lang, so I also added: > > python.jythonc.classpath = C:\\Program > Files\\Java\\jre1.5.0_03\\lib\\rt.jar;C:\\Dev\\jython > > (This might be a good time to note that I'm using the latest jdk from > Sun - 1.5 update 3 on Windows XP SP2.) > > Recompile, and now I get the dreaded red x. So I pop open the Sun Java > Console window and see that it can't find my HelloWorld class. This seems > to work fine in their example, but whatever -- I go ahead and rename my > class to 'test' and set my 'code=test' in the html. Side question: What's > the proper way to do this? > > Yay!, now the applet works. But it's running through some ActiveX Java VM > rather than whatever friendly VM that the applets on the > www.jython.org/applets page are running on. I thought maybe it was > because I was compiling with 1.5, so I added the following to my registry > file: > > python.jythonc.compileropts = -target 1.1 > > Still get the ActiveX warning. > > What's the secret to writing friendly applets in jython that don't require > the people you share them with to install a separate java vm? > > I've tried all the above using sun's compiler (javac instead of jikes) to > see if that made any difference, but still no dice. > > First person to write a decent jython applet tutorial gets a cookie. > > Thanks! > > (Bonus question: Why does python insist on requiring self.whatever - as > opposed to making it implicit like c++/java? Jython is smart enough to > convert self.width into self.getWidth(). Is there a jython switch > automatically check for 'self' first? It seems like 80% of my bugs come > from forgetting the 'self', and Eclipse/NetBeans jython integrations don't > help much tracking these down it seems.) > > ------------------------------------------------------- > SF.Net email is sponsored by: Discover Easy Linux Migration Strategies > from IBM. Find simple to follow Roadmaps, straightforward articles, > informative Webcasts and more! Get everything you need to get up to > speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click > _______________________________________________ > Jython-users mailing list > Jyt...@li... > https://lists.sourceforge.net/lists/listinfo/jython-users > |