[英]Executing shell script containing java -jar Runtime.exec(), which java will it take, OS level or application level
我试图通过beanshell从我的jmeter测试中执行一个Java jar。
我遵循的方法是创建一个Shell脚本,并使用Runtime.exec()函数通过beanshell执行该脚本。
我的问题是执行此Shell脚本是否将从实例/主机/操作系统级别获取Java,还是将其作为应用程序正在使用的当前Java的一部分执行。
可能有一些开放的问题,我想在此之前提供答案:
任何帮助表示赞赏。
在某种程度上,两者兼而有之。
Shell脚本将作为Java程序的一部分执行,但是除非您在exec()
方法调用中指定了Java可执行文件,否则它将使用系统的默认Java可执行文件exec()
。
取决于您运行应用程序的方式。 如果你只是用
Runtime.getRuntime().exec("java -jar ....");
Process实例将查找java
可执行文件,该文件在您的OS PATH中可用。 如果PATH中没有java
可执行文件-调用将失败。
请注意, 从JMeter 3.1开始,建议对任何形式的脚本使用JSR223测试元素和Groovy语言 ,因此请考虑在下一个可用机会时迁移到Groovy。 例如,您可以启动该过程并获得如下输出:
String response = "your command".execute().text
另外,与其将.jar作为单独的进程运行,不如将其添加到JMeter Classpath并直接从Groovy代码中调用必要的函数可能更好。 有关更多信息,请参见Apache Groovy-为什么和如何使用它 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.