java 操作命令行
目的:用java进行调用ab压测
window: cmd ab.exe
linux: sh ab.sh
命令: abs -n 500 -c 10 https://www.baidu.com/ > out.txt 简单直观可靠
那么用java如何调用ab进行压测呢
方法一
public static void methodOne() {
String path;
if (HostUtils.isWindows()) {
path = "D:\\softInstall\\wamp2016_new\\bin\\apache\\apache2.4.9\\bin\\";
String cmd = "cmd /C abs -n 300 -c 100 https://www.baidu.com/ >>abc.txt";
String[] cmd2 = new String[]{"cmd", "/C", "abs", "-n", "300", "-c", "100", "https://www.baidu.com/", ">>abc.txt"};
try {
Process process = Runtime.getRuntime().exec(cmd2, null, new File(path));
process.waitFor();
InputStream inputStream = process.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(inputStream, "gb2312"));
String line = null;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
} }
}
方法二
public static void methodTwo() {
try {
String result = new ProcessExecutor().command("cmd", "/C", "D:\\softInstall\\wamp2016_new\\bin\\apache\\apache2.4.9\\bin\\abs", "-n 300", "-c 100", "https://www.baidu.com/", ">>D:\\softInstall\\wamp2016_new\\bin\\apache\\apache2.4.9\\bin\\aa.txt")
.timeout(60, TimeUnit.SECONDS)
.readOutput(true).execute()
.outputUTF8();
System.out.println(result);
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (TimeoutException e) {
e.printStackTrace();
}
}
方法三
public static void methodThree() {
try {
Future<ProcessResult> cmd = new ProcessExecutor().command("cmd", "/C", "D:\\softInstall\\wamp2016_new\\bin\\apache\\apache2.4.9\\bin\\abs", "-n 300", "-c 100", "https://www.baidu.com/", ">>D:\\softInstall\\wamp2016_new\\bin\\apache\\apache2.4.9\\bin\\aa.txt")
.timeout(60, TimeUnit.SECONDS).readOutput(true).start().getFuture();
String result = cmd.get().outputUTF8();
System.out.println(result);
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
}
压测对比:
性能都差不多,看个人爱好吧
java 操作命令行的更多相关文章
- Linux java 命令行编译 jar包
Java 命令行编译成class,然后在打包成jar文件. 编译成class javac -classpath $CLASS_PATH -d class ./src/Hello.java 可以通过ja ...
- java命令行执行程序解决依赖外部jar包的问题
用java命令行直接执行程序,如果这个程序需要引用外部jar包.就不能单纯用java xx来执行 如果你的jar包和程序就在一个目录: 编译 javac -cp D:\yy\yy.jar,D\xx\x ...
- java命令行打war
java命令行打war(windows下) 切换到需要打包文件夹low的上级目录>jar -cfM legendwealth.war -C low .
- java代码行数统计工具类
package com.syl.demo.test; import java.io.*; /** * java代码行数统计工具类 * Created by 孙义朗 on 2017/11/17 0017 ...
- Java 命令行编译项目
如果是用Exlipse, 第三方的包可以放在eclipse文件夹的jre包的lib文件夹中! (初学者的一些总结-高手们勿喷哈-) 原因: 以前一直用Eclispe编程环境运行Java.非常舒服,就像 ...
- Java命令行的基本编译运行
1.编译 编写MyProgram.java文件,内容如下: public class MyProgram { public static void main(String[] args) { Syst ...
- java命令行从编译到打jar包到执行
目录: 一. javac编译 1. 没有额外的jar包 2. 包含额外的jar包 二. jar打jar包 三. java运行 1. java命令执行 2. jar包执 ...
- c3p0数据库连接池 原创: Java之行 Java之行 5月8日 一、连接池概述 实际开发中“获得连接”或“释放资源”是非常消耗系统资源的两个过程
c3p0数据库连接池 原创: Java之行 Java之行 5月8日 一.连接池概述 实际开发中“获得连接”或“释放资源”是非常消耗系统资源的两个过程 DB连接池HikariCP为什么如此快 原创: D ...
- Java - Java 命令行简介: 选项, 属性, 参数
概述 简单介绍一下 java 命令行相关的参数及属性 1. java 命令行 基本 命令 > java <mainClass> 描述 执行 Java 类 需要准备好编译完成的 mai ...
随机推荐
- [Hanani]高数相关知识记录
分部积分 \(\int uv'{\rm d}x=uv-\int u'v{\rm d}x\)
- Thunder-Final冲刺中间产物-2017秋-软件工程第十二次作业
Thunder-Final发布中间产物(WBS&PSP) WBS: 分解方式:按照「爱阅」阅读器的实施过程分解 使用工具:visio 2013 PSP: PSP 预期时间 Planning 计 ...
- java第四次实验报告
课程:Java程序与设计 班级:1352 姓 名:池彬宁 小组成员: 20135212池彬宁 20135208贺邦 学号:20135212 成绩: 指导教师:娄嘉鹏 ...
- 关于Target=" "的一些属性
总结目前所知的Target=""的几个属性,对其它博客进行整理和归纳. Target="_blank":浏览器总在一个新打开.未命名的窗口中载入目标文档. 说通 ...
- c#窗体移动与窗体阴影效果
//步骤//1.导入代码//2.事件中添加form_1mousedown函数//3.在load函数中定义AnimateWindow语句,注意有两个引用.//4.DllImport若有错误,按shift ...
- 【搜索】POJ-2718 贪心+枚举
一.题目 Description Given a number of distinct decimal digits, you can form one integer by choosing a n ...
- T4模板_T4基本结构
T4文本模板由 指令块.文本块.控制块 组成. 一. 指令块(MSDN文本模板指令) 指令块以@开头,基本的指令块包括<#@ template #> .<#@ parameter# ...
- 使用fdisk创建好了分区,但是在生成物理卷出现"Device /dev/sdb2 not found (or ignored by filtering)."解决方法
生成物理卷出现的问题 解决方法 问题所在: 内核没有成功同步分区信息,所有才需要使用"partprobe"命令来手动同步
- servlet跳转问题
<!-- 相对路径访问 第一个/表示服务器的根目录--> <a href="servlet/o1">访问01/src/servlet/01.java< ...
- Powershell笔记之help about_XXX
<<about_Arrays>> 1. 一直好奇gettype()输出中的Name这一列的Object[]是什么意思,现在终于明白了,请看下面的例子: 2. GM的不同用法 $ ...