From: Teresa V. D. <trv...@gm...> - 2007-12-18 04:52:42
|
I posted a similar questions ages ago , but none of the answers helped me at all. As I got sidetracked by other assignments, just now I'm getting back to my original problem. Maybe with the new version someone can explain me how I can solve this problem. I have an object in java that has a method that needs to receive 2 parameters: a String and a Class or a 2 Strings, but the second String has to be the fully qualified java class name. My code in java is like that: class MyNewClass () extends AbstractAction { // at some point it has an attribute public static final String Name="MyNewClass"; // here goes the code of the class ... } On the calling code I have: myobject.loadNewClass(MyNewClass.NAME, MyNewclass.class.getName()); I was able to create MyNewClass in jython, but when I call myobject.loadNewClass(MyNewClass.NAME, MyNewClass.__name__) It returns an error in java.lang.reflect.Method.invoke saying Unable to load class - MyNewClass:MyNewClass How can I obtain the fully qualified name of the Jython class MyNewClass that I created? How can it be made available while I'm executing the calling code? I'm using Eclipse with pydev plugin for IDE. If I have to generate the bytecode of MyNewClass before running the calling code, how can I automate that in my IDE? Thanks, Teresa |
From: Charlie G. <cha...@gm...> - 2007-12-18 06:48:14
|
On Dec 17, 2007 8:52 PM, Teresa Van Dusen <trv...@gm...> wrote: > class MyNewClass () extends AbstractAction { > // at some point it has an attribute > public static final String Name="MyNewClass"; > // here goes the code of the class > ... > > } > > On the calling code I have: > > myobject.loadNewClass(MyNewClass.NAME, MyNewclass.class.getName()); > > > I was able to create MyNewClass in jython, but when I call > > myobject.loadNewClass(MyNewClass.NAME, MyNewClass.__name__) > > It returns an error in java.lang.reflect.Method.invoke saying Unable to load > class - MyNewClass:MyNewClass > > How can I obtain the fully qualified name of the Jython class MyNewClass > that I created? How can it be made available while I'm executing the calling > code? What does print MyNewClass.__name__ yield? Is it not the fully qualified name? Both MyNewClass.__name__ and MyNewClass.getName() should yield the full class name. If they don't, could you post enough code to reproduce the problem? I can't get __name__ to be anything other than the full class name here. Charlie |
From: Teresa V. D. <trv...@gm...> - 2007-12-18 16:09:12
|
What I need to know is if it is possible to obtain a java.lang.Classinstance from the Jython class upon which we can invoke newInstance in the Java code that is being executed when I pass the class as a parameter. I tried myobject.loadNewClass(MyNewClass.NAME, MyNewClass.__name__) and __name__ is returning just the class name (MyNewClass). As the loadNewClass method also accepts the class object itself instead of the fully qualified name of the class, I tried myobject.loadNewClass(MyNewClass.NAME, MyNewClass.__class__) but it fails because the java code is trying to instantiate org.python.core.PyClass On Dec 18, 2007 12:48 AM, Charlie Groves <cha...@gm...> wrote: > On Dec 17, 2007 8:52 PM, Teresa Van Dusen <trv...@gm...> wrote: > > class MyNewClass () extends AbstractAction { > > // at some point it has an attribute > > public static final String Name="MyNewClass"; > > // here goes the code of the class > > ... > > > > } > > > > On the calling code I have: > > > > myobject.loadNewClass(MyNewClass.NAME, MyNewclass.class.getName()); > > > > > > I was able to create MyNewClass in jython, but when I call > > > > myobject.loadNewClass(MyNewClass.NAME, MyNewClass.__name__) > > > > It returns an error in java.lang.reflect.Method.invoke saying Unable to > load > > class - MyNewClass:MyNewClass > > > > How can I obtain the fully qualified name of the Jython class MyNewClass > > that I created? How can it be made available while I'm executing the > calling > > code? > > What does print MyNewClass.__name__ yield? Is it not the fully > qualified name? Both MyNewClass.__name__ and MyNewClass.getName() > should yield the full class name. If they don't, could you post > enough code to reproduce the problem? I can't get __name__ to be > anything other than the full class name here. > > Charlie > |
From: Charlie G. <cha...@gm...> - 2007-12-18 17:41:39
|
On Dec 18, 2007 8:09 AM, Teresa Van Dusen <trv...@gm...> wrote: > What I need to know is if it is possible to obtain a java.lang.Class > instance from the Jython class upon which we can invoke newInstance in the > Java code that is being executed when I pass the class as a parameter. > > I tried myobject.loadNewClass(MyNewClass.NAME, MyNewClass.__name__) and > __name__ is returning just the class name (MyNewClass). > > As the loadNewClass method also accepts the class object itself instead of > the fully qualified name of the class, I tried > > myobject.loadNewClass(MyNewClass.NAME, MyNewClass.__class__) > > but it fails because the java code is trying to instantiate > org.python.core.PyClass Calling myobject.loadNewClass(MyNewClass.NAME, MyNewClass) should do the trick. Charlie |
From: Teresa V. D. <trv...@gm...> - 2007-12-20 04:54:01
|
Thx, it worked. I had to workaround other things in my program, because I had some java methods with variable number of arguments in the signature and I don't know how to call them in jyhton.It was always complaining that I was passing more arguments than the signature was asking for. As the method also had another way to call, passing the variable args in a list, I put all of them inside [ ] and it worked. Thank you. On Dec 18, 2007 11:41 AM, Charlie Groves <cha...@gm...> wrote: > On Dec 18, 2007 8:09 AM, Teresa Van Dusen <trv...@gm...> wrote: > > What I need to know is if it is possible to obtain a java.lang.Class > > instance from the Jython class upon which we can invoke newInstance in > the > > Java code that is being executed when I pass the class as a parameter. > > > > I tried myobject.loadNewClass(MyNewClass.NAME, MyNewClass.__name__) and > > __name__ is returning just the class name (MyNewClass). > > > > As the loadNewClass method also accepts the class object itself instead > of > > the fully qualified name of the class, I tried > > > > myobject.loadNewClass(MyNewClass.NAME, MyNewClass.__class__) > > > > but it fails because the java code is trying to instantiate > > org.python.core.PyClass > > Calling myobject.loadNewClass(MyNewClass.NAME, MyNewClass) should do the > trick. > > Charlie > |
From:
<Seb...@en...> - 2007-12-24 19:20:44
|
Hi, I tried to make a full build of Jython, but I am stuck at this point: $ ant full-build ... [skip] .... BUILD FAILED JYTHON-SVN/trunk/jython/build.xml:440: srcdir "JYTHON-SVN/trunk/full_build_Release_2_2_1/checkout/jython/tests/java" does not exist! Any hint on how to proceed ? And by the way is it possible to make a full build from the latest version of the sources even if no tag exist (yet) for them ? Cheers, SB |
From: Charlie G. <cha...@gm...> - 2007-12-26 23:53:05
|
On Dec 24, 2007 10:31 AM, S=E9bastien Boisg=E9rault <Seb...@en...> wrote: > $ ant full-build > > ... [skip] .... > > BUILD FAILED > JYTHON-SVN/trunk/jython/build.xml:440: srcdir > "JYTHON-SVN/trunk/full_build_Release_2_2_1/checkout/jython/tests/java" do= es > not exist! > > Any hint on how to proceed ? To run the full build for Release_2_2_1 you need to check out that tag, and run ant full-build with svn.tag=3DRelease_2_2_1 in your ant.properties. Otherwise it's going to try to use the build setup from trunk to build a prior version of the code. > And by the way is it possible to make a full build from the latest versi= on > of the sources even if no tag exist (yet) for them ? If you set svn.tag=3DHEAD in ant.properties, it'll build the current version of the code. Unfortunately, I don't think it's possible to make a full build on the stable branch as things stand. It wouldn't be hard to fix though. As a side note, full-build is only necessary if you want the installer. The jython.jar produced by the developer build in dist is identical to the one produced by full-build. Charlie |