如何在类外面捕捉由该类生成的对象?

xdszg 2003-10-09 03:55:24
比如
class A {
...

public static void main(String[] args) {
...
A obj_a = new A();
...
}
}
现在要在另一个类
比如 class B 调用exec方法,用java A(jdk的命令) 启动 A类,
这时B类怎么取到A类main中所生成的对象obj_a。
...全文
44 35 打赏 收藏 转发到动态 举报
写回复
用AI写文章
35 条回复
切换为时间正序
请发表友善的回复…
发表回复
iamwls 2003-10-31
  • 打赏
  • 举报
回复
我觉得挣分挺好玩的,哈哈
iamwls 2003-10-31
  • 打赏
  • 举报
回复
to qybao(阿宝) 您严重了吧,我只是觉得楼主给分不对,你没有相关经验,所以发了帖子说了一下,你也承认你没有相关经验了

而后您对我的技术水平一而再,再而三的长篇大论加以攻击,又说你会反射技术了,说我水平不怎么样,说我写不出代码来,呵呵,就按你说的吧。我想现在我也没有必要跟您证明什么了,你认为怎样就怎样吧
qybao 2003-10-31
  • 打赏
  • 举报
回复
应iamwls(我想天是我)之邀
去看了
结果发现
不知道你把问题简单化了还是我把问题复杂化了
说实话
我解不了
我对反射和代理机制也只知皮毛而已
如果你自认为你解的正确
那我也没什么好说的
因为你就是那样的人了
说了你也不服气
我曾经试过用代理
但TestDebug中没实现任何接口
代理用不了(目前我技术有限,也许可以我不知道)
反射毕竟是静态的
如果真象我说的那样动态跟踪
仅仅用反射是不行的
我也试过用多线程
还是失败了
你让我去看
不过想炫耀你的水平吗
因为那个帖里的人都你当牛人了
你自认为达到效果了吗
那真的是正确答案吗
我不想再多说什么了
你不就是不平衡楼主给我的分吗
你不就是以挣分为荣吗
很简单
你把这个问题解决了
我把楼主给我的分都给你
我还再开一个帖给你加分





qybao 2003-10-31
  • 打赏
  • 举报
回复
你的第一帖里
哪里的第一帖
请指明
有机会我会去java.sun.com的论坛里学习的
iamwls 2003-10-31
  • 打赏
  • 举报
回复
答案在我第一帖里已经有了回答, 建议你去java.sun.com的论坛里玩,那里真的是很好玩
qybao 2003-10-31
  • 打赏
  • 举报
回复
我没相关经验
可我现在正在做这方面的东西
我用的确实就是反射和代理
你有相关经验
可也不过而而
我并不是长篇大论对你的技术加以攻击
只是你说的比做的多
而且总是把问题简单化
我上文中也问你了
你自认为你的答案正确吗
那不过是你再次简单化问题的答案罢了
如果真是那样
那我给出的答案也是正确的
你能以我的想法来思考并解决问题吗(见你说的另一帖)
我觉得你为人太自满了
他日我将会超越了你
这也许不希奇
因为你太容易超越了
既然你以挣分为乐
那我也说了
你把这个问题解决了
我给你分
iamwls 2003-10-29
  • 打赏
  • 举报
回复

applet和servlet的交互两个JVM之间调用

我不再回帖

郁闷啊~~~~~~~~~郁闷啊~~~~~~~~~郁闷啊~~~~~~~~~
iamwls 2003-10-29
  • 打赏
  • 举报
回复

序列化Object,连接服务器,发送即可

这代码还用写吗?CSDN里的烂手咋这么多,郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~


iamwls 2003-10-29
  • 打赏
  • 举报
回复
to 楼主

我上贴的言语有些过激了,希望能删掉,非常感谢

to qybao(阿宝)

地球人都知道,JAVA从一台机器调用另一台机器的方法很容易!用RMI即可,这个简单的东西我就不重复了

在一个机器上当然更容易?两台之间调用的安全性早已经解决,本机上调用要安全性当然更容易?

都不必涉及具体技术,用脚指头想想就知道答案了



iamwls 2003-10-29
  • 打赏
  • 举报
回复
to qybao(阿宝)

这里有个reflection问题,要不,你帮忙解决一下?

http://expert.csdn.net/Expert/topic/2401/2401192.xml?temp=.5570032
iamwls 2003-10-29
  • 打赏
  • 举报
回复
to qybao(阿宝)

你连reflection都会,厉害厉害,我只用过点JAVABEANS,和您比有些差距,我再学两年再跟您讨论吧
qybao 2003-10-29
  • 打赏
  • 举报
回复
哈哈
果然把问题简单化了
iamwls(我想天是我)
你不觉得这样也来号称高手
是不是有点浪得虚名
我文中所说的高手好象没说是你哦
不要表错情
说了那么多
你始终没切入主题
你的代码好象还是没有给出怎么得到ClaassName.main()中所生成的对象
就象楼主所说的
在main()中所生成的obj_a(一定是这里生成的对象,自己NEW一个不算)
我是该好好练练
因为我接触JAVA时间还不是很长
不过iamwls(我想天是我)已经接触了两年
也不见得强到哪去嘛
我现在用反射和代理机制能把一个类的成员都映射出来
不要说象你这样调用main()方法了
就是把main()反编译出来都没问题
只是在类中套类(当然都是第三方的类)的时候显得过于烦琐
我也曾经象pxboy(阿土仔)一样想过
觉得不可能实现
所以一直在关注这个问题的解决方案
没想到得到的答案几乎都是空谈
是不是真的该问JAVA的创始人了

iamwls 2003-10-29
  • 打赏
  • 举报
回复

想起了一个简单的办法
c:\>java ClassName param1 param2
等于
Runtime.getRuntime().exec("java classname param1 param2");

也等于ClaassName.main(new Sting[]{"param1","param2"});

就在一个JVM里运行了,这样,拥有了ClaassName handle

楼主一定要用exec不能理解

还有楼猪的变量是局部变量,不可能引用到,象我第一个帖子里说的那样:在变量的有效范围内引用对象


楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪
iamwls 2003-10-29
  • 打赏
  • 举报
回复

to: qybao(阿宝) 哈哈,我刚刚发现,原来我是高手啊

to: pxboy(阿土仔) exec 命令和一般的执行WINDDOWS程序是一样的!!!
可以启动一个服务器,A类不是我们写的没关系,String 类也不是我们写的

为什么没有将代码写出来,原因就象pxboy(阿土仔)说的楼主问题并没有完整的描述问题,还有,我写出来有什么好处啊,如果我跟 pxboy(阿土仔) 交流交流还有些价值,qybao(阿宝)还需要再练两年,呵呵,RMI的程序,我已经为两个项目构架系统时写过,本不算什么,经qybao(阿宝)一说,好象倒成了高手了,惭愧啊!
pxboy 2003-10-29
  • 打赏
  • 举报
回复
总之用exec是得不到另一JVM里的对象的,各位高手就不用较劲了,
既然“A类不是我们写的,不可控制”,直接在B中都不能实例化A,那么在其他JVM里如servlet,RMI等等,都是无法实例化的,既如此,楼主怎能用exec("java A")启动呢?如果可以这样做的话,那么在B中直接new A()也是可以的了,楼主的逻辑有问题还是我的逻辑有问题?
qybao 2003-10-29
  • 打赏
  • 举报
回复
to iamwls(我想天是我)
写不出来直说吧
何必郁闷呢
CSDN里烂手是多
把问题简单化的人也多
这个问题我一直关注
我也曾问了不少高手
至今尚不得最佳答案
iamwls(我想天是我)既然如此之牛
何不露一手显露显露
说这么空话有意义吗
iamwls 2003-10-28
  • 打赏
  • 举报
回复
qybao(阿宝) 你做过没有啊,一看就是没有经验,呵呵
iamwls 2003-10-28
  • 打赏
  • 举报
回复
什么跟什么呀,真愚蠢,靠,会不会给分啊
qybao 2003-10-28
  • 打赏
  • 举报
回复
呵呵
我没什么经验
我也想知道这个问题的答案
一直在关注中
不知iamwls(我想天是我)有什么高明的见解
你试过你说的JNDI,RMI, SOAP这些方法了吗
真能在一个类外面得到该类所生成的对象
如果可以
能否写一段代码出来看看
大家研究研究
不过真能这样
我对JAVA的安全性还是挺怀疑的



qybao 2003-10-21
  • 打赏
  • 举报
回复
楼上所说的有一定的道理,不过如果能这么容易得到一个类中生成的对象,那java的安全性也太低了,或者你可以用native方法调用其他语言写的外部程序(如C++等等),在外部程序中调用window的api试试,最好能了解java虚拟机的运行机制。其实知道了一个类,可以通过反射和代理机制重新创建一个代理类,跟踪原类的所有方法调用,不过类中套类也许会很烦琐,可以参考《java核心技术》卷1,卷2,估计会对你有所帮助。这个问题还是相当有难度的,或者你可以写信去直接问问java的创始人,如果知道了解决方法,不妨也通知我一声,谢了!
加载更多回复(15)

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧