a*s 发帖数: 425 | 1 仍然在学习Java中,
关于Java load class的问题
我知道,java可以动态的load外部jar,然后用这个jar的method 初始化instance,
我想知道哦,比如,我有一个runable jar,假设,如果直接运行这个jar,会初始化大
量的object instances
我是否用另外一个java code load 这个jar,然后运行这个runable jar的原本的main,
然后直接access这个runable jar初始化的大量instances,我不需要改动任何东西,只
需要collect一些信息,换句话说,如果,我不可以改动这个runable jar,我想实时
monitor这个程序runtime 初始化的object instances 的状态,这个能否做到?
谢谢 | z****e 发帖数: 54598 | | u****s 发帖数: 2186 | 3 不需要JMX。把jar file打开,找到要用的class name,读进来bytes用ClassLoader就
可以直接instantiate。我以前做过。
【在 z****e 的大作中提到】 : 你可能需要jmx
| e*****t 发帖数: 1005 | 4 刚刚不小心回到unless站内了。
不用那么麻烦, 直接用reflection做就好了。
先用class.forName load class. 然后instantiate the class, get a class object.
you can then do whatever you want.
note: if you want to monitor the state in real time, u then need to run its
main in a different thread.
【在 u****s 的大作中提到】 : 不需要JMX。把jar file打开,找到要用的class name,读进来bytes用ClassLoader就 : 可以直接instantiate。我以前做过。
|
|