Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中,是否可以在新流程中使用反射调用main方法_Java_Reflection_Processbuilder - Fatal编程技术网

在Java中,是否可以在新流程中使用反射调用main方法

在Java中,是否可以在新流程中使用反射调用main方法,java,reflection,processbuilder,Java,Reflection,Processbuilder,是否可以在新进程中执行诸如m.invoke(param1,param2)之类的语句 i、 例如,我想执行一个Java类文件,首先使用反射迭代搜索它的主类,然后在新进程中找到要调用它的主类 在路径中查找所有可用的类 反思并找到具有main方法[检查签名]的类 使用java[JRE 5+]或创建一个新进程来生成新进程,它应该“正常工作” 当然 在路径中查找所有可用的类 反思并找到具有main方法[检查签名]的类 使用java[JRE 5+]或创建一个新进程来生成新进程,它应该“正常工作” 当然,您可

是否可以在新进程中执行诸如m.invoke(param1,param2)之类的语句

i、 例如,我想执行一个Java类文件,首先使用反射迭代搜索它的主类,然后在新进程中找到要调用它的主类

  • 在路径中查找所有可用的类
  • 反思并找到具有main方法[检查签名]的类
  • 使用java[JRE 5+]或创建一个新进程来生成新进程,它应该“正常工作”
  • 当然

  • 在路径中查找所有可用的类
  • 反思并找到具有main方法[检查签名]的类
  • 使用java[JRE 5+]或创建一个新进程来生成新进程,它应该“正常工作”

  • 当然,您可以启动一个新的JVM。这可能是一个新的过程。但我想那不是你想要的。线程呢?为什么是一个过程?@thomashrig是的,你确实是对的,但是我想让你看看我已经发布的问题啊。。。!现在你想知道如何启动一个新的JVM吗?类似于Runtime.getRuntime().exec(“java-jaryourapp.jar”);“我想这应该行得通。”托马瑟里格说,“不,但这并不能解决我的问题。我只能通过反射而不是通过jar调用来运行目标应用程序,而且我看不到任何将语句“m.invoke(param1,param2)”传递给exec()方法的方法。这可能是一个新的过程。但我想那不是你想要的。线程呢?为什么是一个过程?@thomashrig是的,你确实是对的,但是我想让你看看我已经发布的问题啊。。。!现在你想知道如何启动一个新的JVM吗?类似于Runtime.getRuntime().exec(“java-jaryourapp.jar”);“我想这应该行得通。”托马瑟里格说,“不,但这并不能解决我的问题。我只能通过反射而不是通过jar调用来运行目标应用程序,并且我看不到任何将语句“m.invoke(param1,param2)”传递给exec()方法的方法。应该向process builder实例传递什么命令来执行main方法。当您执行jar文件(甚至单个类)时,JVM将始终执行main方法。假设我们有一个类Foo.class(具有静态main方法),它位于jar文件bar.jar中。然后使用Foo类中的静态main方法执行jar,使用“java-cp bar.jar Foo”作为命令。我假设您的PATH环境中有java可执行文件variable@sand1988如果这能解决你的问题,请告诉我+1关于你的问题。@PuspenduBanerjee是的,这很好,但我的限制是我不能从jar执行应用程序。我所能做的就是读取jar的内容,然后使用反射执行它,然后问题就出现了。。面临的另一个问题是,我能看到的唯一解决方案是在新的进程中调用应用程序。让我总结一下:1)我有一个java应用程序,它加载一个可执行的jar文件2)它使用反射调用jar的main 3)现在如果目标应用程序包含framesb,问题就出现在这里。应该向process builder实例传递什么命令来执行main方法。当您执行jar文件(甚至单个类)时,JVM将始终执行main方法。假设我们有一个类Foo.class(具有静态main方法),它位于jar文件bar.jar中。然后使用Foo类中的静态main方法执行jar,使用“java-cp bar.jar Foo”作为命令。我假设您的PATH环境中有java可执行文件variable@sand1988如果这能解决你的问题,请告诉我+1关于你的问题。@PuspenduBanerjee是的,这很好,但我的限制是我不能从jar执行应用程序。我所能做的就是读取jar的内容,然后使用反射执行它,然后问题就出现了。。面临的另一个问题是,我能看到的唯一解决方案是在新的进程中调用应用程序。让我总结一下:1)我有一个java应用程序,它加载一个可执行的jar文件2)它使用反射调用jar的main 3)如果目标应用程序包含帧