java ProcessBuilder调用cmd命令

pb:启动 WINDOWS 控制面板 ls_cmd = 'rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,1'//显示 属性-屏幕保护程序。在应用程序中启动控制面板,只需用ShellExecute函数打开对应的CPL文件即可,例如要在应用程序中修改Windows密码,只需打开。//{添加/删除程序 属性-Windows安装程序}//{添加/删除程序 属性-安装/卸载}//{添加/删除程序 属性-启动盘}//{Internet 属性-常规}//{Internet 属性-程序} 阅读详情
String ffmpeg  = "D: & cd D:\JavaOption\ffmpeg-4.3.1-full_build\bin & ffmpeg -i d:\11.mkv -map 0:s:0 sub11.srt";
List<String> cmdList = new ArrayList<>();
			cmdList.add("cmd");
			cmdList.add("/c");
			cmdList.add(ffmpeg  );

			ProcessBuilder pb = new ProcessBuilder(cmdList);
			pb.redirectErrorStream(true);
			Process process = pb.start();
			readProcessOutput(process.getInputStream(), System.out);
			int state = process.exitValue();
			System.out.println(state);
			System.out.println("ok");

注意
1、String ffmpeg 有第三条命令(每条命令用 & 链接)
不能分开 cmdList.add()三次
即 不能采用下面这种调用方法

cmdList.add("d:");
cmdList.add("cd D:\JavaOption\ffmpeg-4.3.1-full_build\bin");
cmdList.add("ffmpeg -i d:\11.mkv -map 0:s:0 sub11.srt");

如果分开add 会导致无法正确执行。

2、输出返回结果乱码解决方案
InputStreamReader 第二个参数设置为gbk

private static void readProcessOutput(InputStream inputStream, PrintStream out) {
		try {
			BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, Charset.forName("GBK")));
			String line;
			while ((line = reader.readLine()) != null) {
				System.out.println(line);
			}
			System.out.println("-end");
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				inputStream.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}

输出结果如图
在这里插入图片描述

Java程序中调用CMD命令的实战指南 是Java中用于管理外部进程的工具类。与相比,提供了更为灵活和强大的方式来控制子进程,如启动目录、环境变量和错误流处理等。上面的代码示例展示了的基本构造方法,其中是要执行的CMD命令。构造方法可以接受命令行参数的字符串数组。 阅读详情

相关推荐

山东大学FPGA课程实验一 加法器设计

电子设计自动化与FPGA设计,实验一 加法器设计

2503_91283667的博客 869

深入研究java.lang.ProcessBuilder类

  一、概述      ProcessBuilder类是J2SE 1.5在java.lang中新添加的一个新类,此类用于创建操作系统进程,它提供一种启动和管理进程(也就是应用程序)的方法。在J2SE 1.5之前,都是由Process类处来实现进程的控制管理。      每个 ProcessBuilder 实例管理一个进程属性集。它的start() 方法利用这些属性创建一个新...

weixin_33962621的博客 378

计组实验之四路表决器

请在之前四路表决器电路实现的基础上,继续用连接线 联接CD4511,将投票为1的票数总和显示到一个 LED上,思考如何做?由于我们需要通过显示字形来直接看出有几个1,在这里,我们最多有四个1,即显示字形最多到4就行,所以我们需要将有几个1用2进制数来表示,下面给出了相关电路图。显示输入插口,按真值表(自拟)要求,逐次改变输入变量, 测量相应的输出值,验证逻辑功能, 与表3-1 进行比较, 验证所设计的逻辑电路是否符合要求。用实验结果与真值表3-1和3-2进行比对,可以得出,我们实验结果是正确的。

szyugly的博客 1万+

java调用linux命令带星号的问题,ProcessBuilder无法执行带星号的shell命令

8种机械键盘轴体对比本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?有个需求,需要在本地生成数据文档,然后scp到另外一个服务器上。我是用ProcessBuilder来执行scp命令的,调试的时候发现这个scp命令会失败,报No such file or directory。代码如下:1234567891011121314151617181920212223242526272829303...

weixin_42227109的博客 473

嵌入式PCB电源完整性分析:PDN建模与电流密度优化

电源完整性(PI)是高速数字与混合信号系统稳定运行的基础,其核心在于保障芯片供电网络(PDN)在动态负载下的电压稳定与热安全。PDN分析本质上是通过量化电流密度与电压降两个关键物理量,揭示PCB走线、过孔及平面的载流瓶颈与压降路径。电流密度超标将引发局部温升与可靠性风险,而电压降则直接侵蚀器件供电裕量,导致复位、采样失真等典型故障。借助Altium Designer等工具开展工程级PDN建模,需严格依据电源预算表定义源/负载,并精准配置铜厚、过孔参数及IPC-2152限值,从而实现从原理图到制造工艺的闭环验

weixin_28949937的博客 209

从零开始做对容量规划:一文讲透 SAP Greenfield sizing 与 Quick Sizer 落地方法

摘要 SAP项目早期硬件规划面临业务细节缺失的挑战,Greenfield sizing方法通过Quick Sizer工具将业务需求转化为硬件资源需求。该方法聚焦主要负载驱动因素而非精确预测,采用标准化问卷形式输入并发用户数、业务处理量等参数,输出内存、CPU等资源需求。关键步骤包括选择正确的Quick Sizer版本、创建sizing项目、参考SAP基准测试和认证目录校准结果,最终将需求交由硬件厂商落地。该方法特别适用于缺乏历史数据的新系统部署,帮助在不确定性中建立可控的容量规划模型,避免资源浪费或性能不足

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 211

ProcessBuilder工具类及执行多条命令

【代码】ProcessBuilder执行多条命令。

Linging_24的博客 2914

详解AUTOSAR:DaVinci Configurator配置CAN和UART数据协议解析器(RH850)(实战篇—1)

通过学习本篇博文项目,将会把所学的DaVinci Configurator知识系统串联起来。

不脱发的程序猿 2810

java 调用cmd执行命令

java 调用cmd执行命令

kan_Feng的博客 3312

ARMv8/ARMv9的TLB深度学习

千万不要人云亦云。一个TLB entry里有很多很多东西的,有100多个比特位呢,并不是仅仅只有VA/PA/nG/VMID/ASID等。.👉👉👉 个人博客笔记导读目录(全部) 👈👈👈。

baron-周贺贺-代码改变世界ctw 1569

【以太网硬件六】1000base-T物理层编码究竟是怎么编的?

详述1000base-T物理层4D-PAM5的编码过程

highman110的博客 5324

《Java使用ProcessBuilder类创建进程调用CMD命令--使用getOutoutStream连续输入命令》

前言: 在使用Java调用CMD命令的时候,有需求是连续输入多条CMD命令,网上查都是使用&拼接命令,但是在一次执行后,如果后续还要在上面的CMD进程中执行命令怎么解决?可以使用Process的getOutputStream()用流的形式写入命令 public static void main(String[] args) throws Exception { ProcessBuilder pb = null; // 创建进程实例,用来启动cmd p

Ckname的博客 1340

数据分片的三种方式:哈希、一致性哈希、按照数据范围分片

数据分片就是按照一定的规则,将数据集划分成相互独立、正交的数据子集,然后将数据子集分布到不同的节点上。通过设计合理的数据分片规则,可将系统中的数据分布在不同的物理数据库中,达到提升应用系统数据处理速度的目的。三种常用的数据分片方式:1. 哈希分片2. 一致性哈希分片(Consistent Hash)3. 按照数据范围分片(Range Based)数据分片的应用场景:1. 数据库扩展2. 分布式缓存对集群部署多个缓存节点,提高缓存的处理能力。

wjianwei666的专栏 1134

Java 通过ProcessBuilder或Runtime.exec()调用(cmd/sh)系统命令方法代码

本文主要介绍Java中使用ProcessBuilder或Runtime.exec()调用系统命令的方法代码,也就是调用windows系统中cmd命令或者调用Linux系统中sh命令(shell命令),以及是否为windows操作系统的判断。 原文地址:Java 通过ProcessBuilder或Runtime.exec()调用(cmd/sh)系统命令方法代码 ...

weixin_42098295的博客 892

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

java调用操作系统命令_Java 通过ProcessBuilder或Runtime.exec()调用(cmd/sh)系统命令方法代码...

1、操作系统判断boolean isWindows = System.getProperty("os.name").toLowerCase().startsWith("windows");2、读取调用命令的输出输出(Output)必须被读取,否则我们的进程将挂起,不能成功返回。通过StreamGobbler类来读取InputStream:private static class StreamGob...

weixin_39975122的博客 662

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Java调用CMD命令

在Java开发中,有时候需要与操作系统的命令行交互,执行特定的CMD命令或脚本。然而,处理编码问题是调用CMD命令时常遇到的挑战。正确处理编码可以避免输出结果的乱码,确保程序的稳定运行。本文将介绍Java中调用CMD命令的方法,并重点解决编码问题,同时提供一些实用技巧和注意事项。

恋上、小幸福的博客 1万+

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

java调用本地CMD输出结果到页面

1.实现方式 在Java中提供了两种实现方式:Runtime和ProcessBuilder 1) Runtime是Java中的运行时类: Runtime.getRuntime().exec(String cmd);可以直接通过exec方法调用 ***eg(Runtime方式)***: //直接通过cmd打开notepad记事本 Process exec=Runtime.getRuntime...

猫君之上的博客 2564

Java调用win的cmd命令

Java通过类提供了调用CMD命令的能力。这两个类都允许Java程序启动一个新的进程并执行特定的命令,通过标准输入输出流进行数据交换。Runtime类适用于简单的命令执行,ProcessBuilder类则更加灵活,适用于复杂的命令和参数传递。

qq_57335683的博客 2745

java执行cmd命令

import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; /** * 执行cmd命令 * @author kk * */ public class CMD { public static void mai...

qq_24734797的博客 2509

java调用exe_Windows系统中Java调用cmd命令及执行exe程序的方法

Java调用cmd命令,并输出显示信息:package com.anxin.cmd.test;import java.io.BufferedReader;import java.io.InputStreamReader;public class Command {public static void main(String[] args) {try {Runtime rt = Runtime.ge...

weixin_33037051的博客 922

java cmd运行exe_Windows中Java调用cmd命令及执行exe程序的方法

2016年03月12日 08:57:58 作者:qiaolevipJava调用cmd命令,并输出显示信息:package com.anxin.cmd.test;import java.io.BufferedReader;import java.io.InputStreamReader;public class Command {public static void main(String[] ...

weixin_28994227的博客 868

Windows平台Java调用cmd命令执行程序

第一种方式:利用cmd方式 * 执行cmd命令 * * @param command * @throws IOException */ public static String executeCmd(String command) throws IOException { System.out.p

shenxiaomo1688的博客 6441

java调用cmd执行exe_java_Windows系统中Java调用cmd命令及执行exe程序的方法,Java调用cmd命令,并输出显示信 - phpStudy...

Windows系统中Java调用cmd命令及执行exe程序的方法Java调用cmd命令,并输出显示信息:package com.anxin.cmd.test;import java.io.BufferedReader;import java.io.InputStreamReader;public class Command {public static void main(String[] arg...

weixin_39521009的博客 311

java 执行cmd windows_Windows平台Java调用cmd命令执行程序

第一种方式:利用cmd方式* 执行cmd命令** @param command* @throws IOException*/public static String executeCmd(String command) throws IOException {System.out.println("Execute command : " + command);Runtime runtime = R...

weixin_39963465的博客 164

java调用cmd执行exe_Windows系统中Java调用cmd命令及执行exe程序的方法

java调用cmd命令,并输出显示信息:package com.anxin.cmd.test;import java.io.bufferedreader;import java.io.inputstreamreader;public class command {public static void main(string[] args) {try {runtime rt = runtime.ge...

weixin_39752215的博客 335

java 没有权限调用cmd

我整理的一些关于【Java】的项目学习资料(附讲解~~)和大家一起分享、学习一下:https://d.51cto.com/f2PFnN如何在Java中调用CMD命令 在Java中,如果你发现自己没有权限直接调用CMD(命令提示符),不要担心!本文将指导你如何安全有效地在Java应用中运行命令行指令,并解决可能遇到的权限问...

weixin_41289697的博客 303
上一篇: javacv + javafx 视频播放器
下一篇: javacv 视频播放器v1
「已注销」
博客等级 码龄6年 2198粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值