网页java加载慢_Java类加载运行速度极慢?

我正在尝试动态加载

java .class文件并通过反射调用它.

我有一个名为Foo的课程;它有一个空的构造函数,并有一个名为doit()的方法,它接受一个String参数并返回一个String.它也会反转字符串.

这是我的代码:

URL url = new URL("file://C:/jtest/");

URLClassLoader loader = new URLClassLoader(new URL[]{url});

Class> cl = loader.loadClass("Foo");

Constructor> cons = cl.getConstructor((Class[])null);

Object ins = cons.newInstance(new Object[]{});

Method meth = cl.getDeclaredMethod("doit", String.class);

Object ret = meth.invoke(ins, new Object[]{"!dlroW olleH"});

System.out.println((String)ret);

正如预期的那样,它打印出“Hello World!”.但是,完成大约需要30秒.我知道反射很慢,但我希望它是10毫秒或者其他东西.

我正在使用Eclipse和JRE 1.6.0_13,而我正在运行Windows Vista.

我在这做错了什么?

谢谢.

编辑:我已经分析了代码,并且它的所有时间都在第三行(loadClass())中使用.其他一切都会立即发生.

编辑:我把代码放在一个循环中;慢速函数以某种方式得到优化,仅在第一个循环上需要30秒.

编辑:我找到了解决方案.

代替:

URL url = new URL(“file:// C:/ jtest /”);

我改成了:

URL url = new URL(“file:/ C:/ jtest /”);

现在它完美无缺.我不知道它为什么会起作用,但我不知道我(以及其他5个人)是如何错过的.现在我觉得愚蠢..

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值