最近登录的好友
查看全部

共 4 个好友

迷你博客

共0篇迷你博客

最新帖子

共14 条帖子

懂Lucene和用C做搜索引擎的进来
16天前

吴冬冬(lastsweetop)在线状态 5天前

社区头衔:
专家排行榜
社区生日:
2006-09-18 |生日:1983-12-15
所在城市:
中国 广东 广州
技术专长:
J2EE,神经网络,搜索引擎
开发工具:
兴趣爱好:
个人简介:
研发者
所在行业:
所在公司:
 
(仅好友可见)
联系方式:
(仅好友可见)
 
编辑我的资料
人气:
[人气排行榜] 共 5261 人访问 / 查看详细
专家分:
[专家分排行榜] 共 3924 分 / 查看详细
可用分:
[可用分排行榜] 共 1814 分
个人动态
昨天
09月03
09月02
09月01
08月31
08月29
08月28
留言
查看全部

共 7 条留言

legend_jhz 2008-03-17

<a href='Http://hi.csdn.net/lastsweetop/profile/notebook/1.html' target='_blank'>我不知道你有没有在编译工具中编译过没,即使你这样写:Class objClass=loader.loadClass("AccountService",true);也并不是声名了AccountService,然后你再这样调用((AccountService)obj)可定会提示AccountService是未知的。</a>

吴冬冬 回复于 2008-03-17

<a href='Http://hi.csdn.net/lastsweetop/profile/notebook/1.html' target='_blank'>你要放在对应的文件夹下,和你调用这个类的那个类编译后的class放同一个文件夹下</a>

legend_jhz 2008-03-17

<a href='Http://hi.csdn.net/lastsweetop/profile/notebook/1.html' target='_blank'>是这个没错,可是最后以行HelloWorld类没定义直接这么写肯定出错,另外怎么去调用这个类的方法呢?<br/></a>

吴冬冬 回复于 2008-03-17

<a href='Http://hi.csdn.net/lastsweetop/profile/notebook/1.html' target='_blank'>Class objClass=loader.loadClass("AccountService",true);如果有包名类名前加包名<br/>((AccountService)obj).as.newAccount("123","123");</a>

legend_jhz 2008-03-17

<a href='Http://hi.csdn.net/lastsweetop/profile/notebook/1.html' target='_blank'>可能我说的不是很清楚,就是别人将编译好的.class文件给我,然后我放入工程中,这个已经在上次你回的帖子中研究过,不行,然后你又写了一个类加载的程序,我用你的这个程序发现你没有调用具体的方法实现,所以我想让你在这里帮我讲解一下。不是什么ejb,spring什么的。</a>

吴冬冬 回复于 2008-03-17

<a href='Http://hi.csdn.net/lastsweetop/profile/notebook/1.html' target='_blank'>package com.goodtion.sweetop;<br/><br/>import java.io.ByteArrayOutputStream;<br/>import java.io.File;<br/>import java.io.FileInputStream;<br/>import java.io.FileNotFoundException;<br/>import java.io.IOException;<br/><br/>public class FileClassLoader extends ClassLoader {<br/> public static final String drive="D:\\sweetop\\搜索引擎\\TomcatTest\\bin\\com\\goodtion\\sweetop\\";<br/> public static final String fileType=".class";<br/> <br/> public Class findClass(String name){<br/> byte[] data=loadClassData(name);<br/> return defineClass(name,data,0,data.length);<br/> }<br/><br/> private byte[] loadClassData(String name) {<br/> FileInputStream fis=null;<br/> byte[] data = null;<br/> try {<br/> fis = new FileInputStream(new File(drive+name+fileType));<br/> ByteArrayOutputStream baos=new ByteArrayOutputStream();<br/> int ch=0;<br/> while((ch=fis.read())!=-1){<br/> baos.write(ch);<br/> }<br/> data=baos.toByteArray();<br/> } catch (IOException e) {<br/> // TODO Auto-generated catch block<br/> e.printStackTrace();<br/> }<br/> return data;<br/> }<br/> <br/> public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException{<br/> FileClassLoader loader = new FileClassLoader();<br/> Class objClass=loader.loadClass("com.goodtion.sweetop.HelloWord",true);<br/> Object obj=objClass.newInstance();<br/> System.out.println(objClass.getName());<br/> System.out.println(objClass.getClassLoader().getClass().getName());<br/> System.out.println(((HelloWord)obj).getInfo());<br/> }<br/>}<br/>是这个吗?你吧路径和类名还有方法名改一下就可以用了<br/></a>

legend_jhz 2008-03-17

<a href='Http://hi.csdn.net/lastsweetop/profile/notebook/1.html' target='_blank'>是别人生成了.class文件,我获得他后,再进行的操作,远程方法,能实现一下吗?,你给我的帖子举的例子不对,所以我跑你这儿留言了。</a>

吴冬冬 回复于 2008-03-17

<a href='Http://hi.csdn.net/lastsweetop/profile/notebook/1.html' target='_blank'>能描述的具体些吗?远程方法用的EJB?</a>

legend_jhz 2008-03-17

<a href='Http://hi.csdn.net/lastsweetop/profile/notebook/1.html' target='_blank'>能利用这个方法举个例子么?类名为AccountService,它包含的方法有:int newAccount(String username,String password); int delAccount(String username); User FindAccount(String username);万分感谢!</a>

吴冬冬 回复于 2008-03-17

<a href='Http://hi.csdn.net/lastsweetop/profile/notebook/1.html' target='_blank'>AccountService as=new AccountService();<br/>as.newAccount("123","123");<br/>不过看你的的类名应该是一个远程方法</a>

legend_jhz 2008-03-17

<a href='Http://hi.csdn.net/lastsweetop/profile/notebook/1.html' target='_blank'>那我知道方法名呢?例如,newAccount(String user,String password),我怎么调用这个方法呢?</a>

吴冬冬 回复于 2008-03-17

<a href='Http://hi.csdn.net/lastsweetop/profile/notebook/1.html' target='_blank'>知道方法名的话就不需要用反射了,直接创造实例,直接调用就好了</a>

legend_jhz 2008-03-16

<a href='Http://hi.csdn.net/lastsweetop/profile/notebook/1.html' target='_blank'>你说的这些方法都是静态,并没有动态的调用出来方法啦,构造器什么的。<br/>try {<br/>            Class cls = Class.forName("com.goodtion.sweetop.Constructor2");<br/>            Class partypes[] = new Class[2];<br/>            partypes[0] = Integer.TYPE;<br/>            partypes[1] = Integer.TYPE;<br/>            Constructor ct = cls.getConstructor(partypes);<br/>            Object arglist[] = new Object[2];<br/>            arglist[0] = new Integer(37);<br/>            arglist[1] = new Integer(47);<br/>            Object retobj = ct.newInstance(arglist);<br/>        } catch (Throwable e) {<br/>            System.err.println(e);<br/>        }<br/></a>

吴冬冬 回复于 2008-03-17

<a href='Http://hi.csdn.net/lastsweetop/profile/notebook/1.html' target='_blank'>这里的动态是指在不知道方法名的情况下名的情况下进行调用</a>