首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在不同的JVM中运行java命令

在不同的JVM中运行java命令
EN

Stack Overflow用户
提问于 2013-02-05 17:39:31
回答 4查看 4.9K关注 0票数 1

目标:我有一个客户机-服务器程序,在这个程序中客户机和服务器运行在不同的jvm中。为了进行相同的测试,我想在不同的JVM中以编程方式调用Server,然后使用当前的jvm来运行客户端并执行不同的C/S测试。

有没有办法在不同的jvm中以编程方式执行方法或运行Java命令?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-02-05 17:49:12

1) java中运行进程的最强大的工具是ProcessBuilder

代码语言:javascript
复制
ProcessBuilder pb = new ProcessBuilder("java", "-server", "-jar", "yourJar.jar");

Process p = pb.start();

比起使用Process,你可以操纵子进程,例如read InputStreamdestroy e.t.c。

2)如果您可以同时编辑两个源代码review this question to build efficient communication between JVM on the same host。如果您不能更改代码,只需创建自己的加载器来加载服务器并实现JVM之间的通信,并调用您需要的方法,因为它位于相同的JVM空间中。

票数 4
EN

Stack Overflow用户

发布于 2013-02-05 17:51:11

实际上,您可以使用以下命令手动运行任何命令

代码语言:javascript
复制
             Runtime.getRuntime().exec(command);

有关更多信息,请参阅Runtime.getRuntime().exec(...)文档。

但也要注意,使用exec运行任何特定于平台的命令都会破坏程序的平台独立性。

不久前,我看到有人使用"mv“来移动文件。这使得整个程序对于基于Unix的操作系统来说是特定的。Java或任何基于虚拟机的语言的魅力在于它的平台无关性。

票数 1
EN

Stack Overflow用户

发布于 2013-02-05 17:44:07

您可以使用命令行:

代码语言:javascript
复制
 Runtime.getRuntime().exec("java -server MyServer")

或者,如果您想构建一些更复杂的调用,只需使用http://commons.apache.org/exec/来构建和运行程序。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14704272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档