可以吗?在不同的JVM了吧?似乎不可以,我不知道,一下

解决方案 »

  1.   

    The Runtime.exec methods create a native process and return an instance of a subclass of Process that can be used to control the process and obtain information about it. The class Process provides methods for performing input from the process, performing output to the process, waiting for the process to complete, checking the exit status of the process, and destroying (killing) the process. The Runtime.exec methods may not work well for special processes on certain native platforms, such as native windowing processes, daemon processes, Win16/DOS processes on Win32, or shell scripts. The created subprocess does not have its own terminal or console. All its standard io (i.e. stdin, stdout, stderr) operations will be redirected to the parent process through three streams (Process.getOutputStream(), Process.getInputStream(), Process.getErrorStream()). The parent process uses these streams to feed input to and get output from the subprocess. Because some native platforms only provide limited buffer size for standard input and output streams, failure to promptly write the input stream or read the output stream of the subprocess may cause the subprocess to block, and even deadlock. The subprocess is not killed when there are no more references to the Process object, but rather the subprocess continues executing asynchronously. There is no requirement that a process represented by a Process object execute asynchronously or concurrently with respect to the Java process that owns the Process object学习
      

  2.   

    import java.lang.Runtime;
    import java.lang.Process;Process p = Runtime.getRuntime().exec("java A(jdk的命令) ");通过p可以控制exec产生的进程
      

  3.   

    TO: LoveRose(旺旺) 
    得到进程P能取得所产生的对象吗?
      

  4.   

    TO: LoveRose(旺旺) 
    得到进程P能取得所产生的对象吗?re
      好像是得不到的,取得的只是所执行的进程,
      在B中能控制的不是A的实例,控制仅仅是“java A”产生的进程。
      我了解得也就这么多了。
      继续讨论
      

  5.   

    你这样运行 等于
    运行两个class
    然后互相调用等于两个JVM进程所以,你需要用JNDI,RMI, SOAP之类的方法来调用 public对象
      

  6.   

    关键是要获得A类所产生的对象!
    JNDI,RMI只是访问方法。
    SOAP我要研究一下。
      

  7.   

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

  8.   

    qybao(阿宝) 你做过没有啊,一看就是没有经验,呵呵
      

  9.   

    呵呵
    我没什么经验
    我也想知道这个问题的答案
    一直在关注中
    不知iamwls(我想天是我)有什么高明的见解
    你试过你说的JNDI,RMI, SOAP这些方法了吗
    真能在一个类外面得到该类所生成的对象
    如果可以
    能否写一段代码出来看看
    大家研究研究
    不过真能这样
    我对JAVA的安全性还是挺怀疑的
      

  10.   

    to 楼主   我上贴的言语有些过激了,希望能删掉,非常感谢to qybao(阿宝)   地球人都知道,JAVA从一台机器调用另一台机器的方法很容易!用RMI即可,这个简单的东西我就不重复了在一个机器上当然更容易?两台之间调用的安全性早已经解决,本机上调用要安全性当然更容易?  都不必涉及具体技术,用脚指头想想就知道答案了
      

  11.   


    序列化Object,连接服务器,发送即可这代码还用写吗?CSDN里的烂手咋这么多,郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~郁闷啊~~~~
      

  12.   


    applet和servlet的交互两个JVM之间调用我不再回帖郁闷啊~~~~~~~~~郁闷啊~~~~~~~~~郁闷啊~~~~~~~~~
      

  13.   

    to iamwls(我想天是我) 
    写不出来直说吧
    何必郁闷呢
    CSDN里烂手是多
    把问题简单化的人也多
    这个问题我一直关注
    我也曾问了不少高手
    至今尚不得最佳答案
    iamwls(我想天是我)既然如此之牛
    何不露一手显露显露
    说这么空话有意义吗
      

  14.   

    总之用exec是得不到另一JVM里的对象的,各位高手就不用较劲了,
    既然“A类不是我们写的,不可控制”,直接在B中都不能实例化A,那么在其他JVM里如servlet,RMI等等,都是无法实例化的,既如此,楼主怎能用exec("java A")启动呢?如果可以这样做的话,那么在B中直接new A()也是可以的了,楼主的逻辑有问题还是我的逻辑有问题?
      

  15.   


    to:  qybao(阿宝) 哈哈,我刚刚发现,原来我是高手啊to:   pxboy(阿土仔)   exec 命令和一般的执行WINDDOWS程序是一样的!!!
    可以启动一个服务器,A类不是我们写的没关系,String 类也不是我们写的  为什么没有将代码写出来,原因就象pxboy(阿土仔)说的楼主问题并没有完整的描述问题,还有,我写出来有什么好处啊,如果我跟 pxboy(阿土仔) 交流交流还有些价值,qybao(阿宝)还需要再练两年,呵呵,RMI的程序,我已经为两个项目构架系统时写过,本不算什么,经qybao(阿宝)一说,好象倒成了高手了,惭愧啊!
      

  16.   


    想起了一个简单的办法 
    c:\>java ClassName  param1 param2
    等于
    Runtime.getRuntime().exec("java classname  param1 param2");也等于ClaassName.main(new Sting[]{"param1","param2"});就在一个JVM里运行了,这样,拥有了ClaassName handle楼主一定要用exec不能理解还有楼猪的变量是局部变量,不可能引用到,象我第一个帖子里说的那样:在变量的有效范围内引用对象
    楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪楼猪
      

  17.   

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

  18.   

    to qybao(阿宝)   你连reflection都会,厉害厉害,我只用过点JAVABEANS,和您比有些差距,我再学两年再跟您讨论吧
      

  19.   

    to qybao(阿宝) 这里有个reflection问题,要不,你帮忙解决一下? http://expert.csdn.net/Expert/topic/2401/2401192.xml?temp=.5570032
      

  20.   

    应iamwls(我想天是我)之邀
    去看了
    结果发现
    不知道你把问题简单化了还是我把问题复杂化了
    说实话
    我解不了
    我对反射和代理机制也只知皮毛而已
    如果你自认为你解的正确
    那我也没什么好说的
    因为你就是那样的人了
    说了你也不服气
    我曾经试过用代理
    但TestDebug中没实现任何接口
    代理用不了(目前我技术有限,也许可以我不知道)
    反射毕竟是静态的
    如果真象我说的那样动态跟踪
    仅仅用反射是不行的
    我也试过用多线程
    还是失败了
    你让我去看
    不过想炫耀你的水平吗
    因为那个帖里的人都你当牛人了
    你自认为达到效果了吗
    那真的是正确答案吗
    我不想再多说什么了
    你不就是不平衡楼主给我的分吗
    你不就是以挣分为荣吗
    很简单
    你把这个问题解决了
    我把楼主给我的分都给你
    我还再开一个帖给你加分
      

  21.   

    to qybao(阿宝) 您严重了吧,我只是觉得楼主给分不对,你没有相关经验,所以发了帖子说了一下,你也承认你没有相关经验了  而后您对我的技术水平一而再,再而三的长篇大论加以攻击,又说你会反射技术了,说我水平不怎么样,说我写不出代码来,呵呵,就按你说的吧。我想现在我也没有必要跟您证明什么了,你认为怎样就怎样吧
      

  22.   

    答案在我第一帖里已经有了回答, 建议你去java.sun.com的论坛里玩,那里真的是很好玩
      

  23.   

    你的第一帖里
    哪里的第一帖
    请指明
    有机会我会去java.sun.com的论坛里学习的