Java启动本机应用程序EXE的三种方式

2023-11-05

第一种方式:利用cmd方式 

/** 
 * 执行cmd命令 
 * 
 * @param command 
 * @throws IOException 
 */ 
public static String executeCmd(String command) throws IOException { 
 log.info("Execute command : " + command); 
 Runtime runtime = Runtime.getRuntime(); 
 Process process = runtime.exec("cmd /c " + command); 
 BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream(), "UTF-8")); 
 String line = null; 
 StringBuilder build = new StringBuilder(); 
 while ((line = br.readLine()) != null) { 
  log.info(line); 
  build.append(line); 
 } 
 return build.toString(); 

 
executeCmd(start "AXAdWebBrowser" "D:\AXAdsBrowser\AXAdWebBrowser.exe"); 


第二种方式:利用ProcessBuilder调用cmd方式

/** 
 * 启动应用程序 
 * 
 * @param programName 
 * @return 
 * @throws IOException 
 */ 
public static void startProgram(String programPath) throws IOException { 
 log.info("启动应用程序:" + programPath); 
 if (StringUtils.isNotBlank(programPath)) { 
  try { 
   String programName = programPath.substring(programPath.lastIndexOf("/") + 1, programPath.lastIndexOf(".")); 
   List<String> list = new ArrayList<String>(); 
   list.add("cmd.exe"); 
   list.add("/c"); 
   list.add("start"); 
   list.add("\"" + programName + "\""); 
   list.add("\"" + programPath + "\""); 
   ProcessBuilder pBuilder = new ProcessBuilder(list); 
   pBuilder.start(); 
  } catch (Exception e) { 
   e.printStackTrace(); 
   log.error("应用程序:" + programPath + "不存在!"); 
  } 
 } 

 

第三种方式:使用Desktop启动应用程序 

/** 
 * 启动应用程序 
 * 
 * @param programName 
 * @return 
 * @throws IOException 
 */ 
public static void startProgram(String programPath) throws IOException { 
 log.info("启动应用程序:" + programPath); 
 if (StringUtils.isNotBlank(programPath)) { 
  try { 
   Desktop.getDesktop().open(new File(programPath)); 
  } catch (Exception e) { 
   e.printStackTrace(); 
   log.error("应用程序:" + programPath + "不存在!"); 
  } 
 } 

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.getRuntime(); 
   Process pr = rt.exec("cmd /c dir"); // cmd /c calc 
   // Process pr = rt.exec("D:\\xunlei\\project.aspx"); 
 
   BufferedReader input = new BufferedReader(new InputStreamReader(pr.getInputStream(), "GBK")); 
 
   String line = null; 
 
   while ((line = input.readLine()) != null) { 
    System.out.println(line); 
   } 
 
   int exitVal = pr.waitFor(); 
   System.out.println("Exited with error code " + exitVal); 
 
  } catch (Exception e) { 
   System.out.println(e.toString()); 
   e.printStackTrace(); 
  } 
 } 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java启动本机应用程序EXE的三种方式 的相关文章

  • 如何在日期选择器中设置不在当前月份的单元格的样式

    我目前正在为我的 JavaFX 应用程序制作注册表 问题是 当日期选择器中的单元格不在页面的月份上时 我想让该单元格变灰 让我们看看我当前的日期选择器 我的日期选择器 正如您所看到的 我希望下个月的日期 27 日 28 日 30 日以及 1
  • 热重载在docker中运行的java程序

    我开发了一个java程序 应该在docker中运行 然而 我在调试docker中运行的java程序时遇到了很多痛苦 我在网上搜索 一些教程提出了像 spring dev tools 这样的工具 因为我的java程序是基于spring boo
  • IntelliJ IDEA 创建的 JAR 文件无法运行

    我在 IntelliJ 中编写了一个跨越几个类的程序 当我在 IDE 中测试它时它运行良好 但是 每当我按照教程将项目制作成 jar 可执行文件时 它就不会运行 双击 out 文件夹中的文件时 该文件不会运行 并显示 无法启动 Java J
  • 在数据流模板中调用 waitUntilFinish() 后可以运行代码吗?

    我有一个批处理 Apache Beam 作业 它从 GCS 获取文件作为输入 我的目标是根据执行后管道的状态将文件移动到两个 GCS 存储桶之一 如果管道执行成功 则将文件移动到存储桶 A 否则 如果管道在执行过程中出现任何未处理的异常 则
  • 如何在 Java 中禁用 System.out 以提高速度

    我正在用 Java 编写一个模拟重力的程序 其中有一堆日志语句 到 System out 我的程序运行速度非常慢 我认为日志记录可能是部分原因 有什么方法可以禁用 System out 以便我的程序在打印时不会变慢 或者我是否必须手动检查并
  • HDFS:使用 Java / Scala API 移动多个文件

    我需要使用 Java Scala 程序移动 HDFS 中对应于给定正则表达式的多个文件 例如 我必须移动所有名称为 xml从文件夹a到文件夹b 使用 shell 命令我可以使用以下命令 bin hdfs dfs mv a xml b 我可以
  • 如何为 Gson 编写自定义 JSON 反序列化器?

    我有一个 Java 类 用户 public class User int id String name Timestamp updateDate 我收到一个包含来自 Web 服务的用户对象的 JSON 列表 id 1 name Jonas
  • 如何在jsp代码中导入java库?

    我有以下jsp代码 我想添加 java io 等库 我怎样才能做到这一点
  • 请求位置更新参数

    这就是 requestLocationUpdates 的样子 我使用它的方式 requestLocationUpdates String provider long minTime float minDistance LocationLis
  • 在具有相同属性名称的不同数据类型上使用 ModelMapper

    我有两节课说Animal AnimalDto我想用ModelMapper将 Entity 转换为 DTO 反之亦然 但是对于具有相似名称的一些属性 这些类应该具有不同的数据类型 我该如何实现这一目标 动物 java public class
  • Java中接口作为方法参数

    前几天去面试 被问到了这样的问题 问 反转链表 给出以下代码 public class ReverseList interface NodeList int getItem NodeList nextNode void reverse No
  • 从 android 简单上传到 S3

    我在网上搜索了从 android 上传简单文件到 s3 的方法 但找不到任何有效的方法 我认为这是因为缺乏具体步骤 1 https mobile awsblog com post Tx1V588RKX5XPQB TransferManage
  • 反思 Groovy 脚本中声明的函数

    有没有一种方法可以获取 Groovy 脚本中声明的函数的反射数据 该脚本已通过GroovyShell目的 具体来说 我想枚举脚本中的函数并访问附加到它们的注释 Put this到 Groovy 脚本的最后一行 它将作为脚本的返回值 a la
  • 使用 SAX 进行 XML 解析 |如何处理特殊字符?

    我们有一个 JAVA 应用程序 可以从 SAP 系统中提取数据 解析数据并呈现给用户 使用 SAP JCo 连接器提取数据 最近我们抛出了一个异常 org xml sax SAXParseException 字符引用 是无效的 XML 字符
  • Keycloak - 自定义 SPI 未出现在列表中

    我为我的 keycloak 服务器制作了一个自定义 SPI 现在我必须在管理控制台上配置它 我将 SPI 添加为模块 并手动安装 因此我将其放在 module package name main 中 并包含 module xml 我还将其放
  • 查看Jasper报告执行的SQL

    运行 Jasper 报表 其中 SQL 嵌入到报表文件 jrxml 中 时 是否可以看到执行的 SQL 理想情况下 我还想查看替换每个 P 占位符的值 Cheers Don JasperReports 使用 Jakarta Commons
  • 如何测试 spring-security-oauth2 资源服务器安全性?

    随着 Spring Security 4 的发布改进了对测试的支持 http docs spring io spring security site docs 4 0 x reference htmlsingle test我想更新我当前的
  • android Accessibility-service 突然停止触发事件

    我有一个 AccessibilityService 工作正常 但由于开发过程中的某些原因它停止工作 我似乎找不到这个原因 请看一下我的代码并告诉我为什么它不起作用 public class MyServicee extends Access
  • javax.persistence.Table.indexes()[Ljavax/persistence/Index 中的 NoSuchMethodError

    我有一个 Play Framework 应用程序 并且我was使用 Hibernate 4 2 5 Final 通过 Maven 依赖项管理器检索 我决定升级到 Hibernate 4 3 0 Final 成功重新编译我的应用程序并运行它
  • Swagger/Openapi-Annotations:如何使用 $ref 生成 allOf?

    我正在生成 Rest 端点 包括添加OpenAPI Swagger对生成的代码进行注释 虽然它对于基本类型运行得很好 但我在自定义类方面遇到了一些问题 现在我有很多自定义类的重复架构条目 使用 Schema 实现 MyClass class

随机推荐

  • 2022年度【产业数字化金铲奖】重磅来袭!

    出品 产业家 第二届金铲奖来了 过去的一年时间里 产业家清晰地看到 数实融合的潮水更加汹涌澎湃且势不可挡 越来越多的企业开始寻求数字化转型 它们来自金融 工业 农业 医疗 能源等等 产业数字化 已经成为当代中国的主旋律 在新的主旋律中 被看
  • OpenWrt之时区设置(夏令时设置)

    今天遇到一个客户关于设置时区问题 涉及到夏令时区 查阅一些资料终于搞明白了 记录如下 因为openwrt是基于linux内核 所以记录一下Linux的时间和时区设置 Linux的时间和时区设置 在linux中与时间相关的文件有 etc lo
  • 如何使用eclipse软件创建一个Java项目?

    同学们在参加Java的时候老师肯定会教给你们如何去创建一个项目 这里怕有些同学没记住 所以单独为大家分享一篇如何使用eclipse软件创建一个Java项目教程 感觉有用的话收藏转发一下 eclipse创建Java项目教程 1 首先我们需要打
  • 将一个Android项目作为另一个Android Library给其他项目使用

    一 eclipse中的使用 开发中如果使用eclipse将一个Android工程作为Android Library给其他项目使用 需要实现的步骤如下 1 将android工程设为库 选择工程右击选择 property gt Android
  • Flutter Plugin调用Native APIs

    关键词 Flutter Flutter Plugin Platform Channel Method Channel Flutter Package Flutter插件 Flutter是Google使用Dart语言开发的一套移动应用开发框架
  • 微信小程序 之 发布流程

    1 前期准备 先想好你的小程序是用来做什么的 是电商 服务预约 知识付费 产品展示 还是团队管理 酒店预订 主要面向的人群都是哪些 现在小程序类型繁多 你一定要对自己有清晰的定位 明确的目标 才能避免把小程序做得乱七八糟 让自己的小程序真正
  • 菜鸟操作:QString和QMap转化(QMap嵌套QMap)

    学习QT的时候遇到一个问题 我想要将QMap转成QString 用于socket通信 查了网上找不到我想到的效果 然后就用一个比较粗糙的做法来实现 以下代码是对于二级QMap操作的 主要思路 将QMap中的数据全都放到QString中 包括
  • 百度人脸识别模块使用分享

    本文出自APICloud官方论坛 感谢鲍永道的分享 首先介绍下百度人脸识别模块 baiduFaceRec baiduFaceRec模块封装了百度AI人脸识别功能 使用此模块可实现百度人脸检测 包括age beauty expression
  • DHT11解析

    一 DHT11工作原理 1 获取数据 DHT11包括一个电阻式感湿元件和一个NTC测温元件 这两个获取温湿度数据的方式都差不多 利用湿 温 敏元件的电气特性 如电阻值 随湿 温 度的变化而变化的原理进行湿 温 度测量 2 数据发送 数据格式
  • SPECjvm 2008 小记

    背景 specjvm2008是免费的 直接官网下载就可以开跑了 但俗话说的好 便宜无好货 没啥厂家买账 看官网列出的成绩公示结果 根本没几家上传成绩 另外 SPECjvm2008本身是测试JRE的执行成绩 也就是java客户端的运行成绩 但
  • IOC的两种容器对比

    Spring的IOC容器是一个提供IOC支持的轻量级容器 Spring提供了两种容器类型 BeanFactory和ApplicationContext BeanFactory 基础类型IOC容器 提供完整的IOC支持 默认采用延迟初始化策略
  • 让Python在退出时强制运行一段代码

    atexit介绍 python atexit 模块定义了一个 register 函数 用于在 python 解释器中注册一个退出函数 这个函数在解释器正常终止时自动执行 一般用来做一些资源清理的操作 atexit 按注册的相反顺序执行这些函
  • qwt之鼠标移动和滚轮滚动

    一 qwt中的鼠标左键平移 主要通过 QwtPlotPanner panner new QwtPlotPanner ui gt qwtPlot gt canvas 这种状态下默认的是鼠标拖动图形 x轴和y轴都可以进行移动 以下实现禁止x轴拖
  • MongoDB快速入门

    一 MongoDB安装配置 1 MongoDB简介 MongoDB 由 databases 组成 databases 由 collections 组成 collections 由documents 相当于行 组成 而documents有fi
  • matlab怎么导出矩阵,如何用matlab 生成矩阵

    随便敲了些和lz类似的关系数字 把你的数字放到这个txt文件里就可以了 比如你有一个txt文件叫numbers txt 里头的数字如下 2 3 1 3 4 1 3 9 1 10 9 1 4 6 1 9 6 1 8 10 1 程序如下 cle
  • 全排列的价值 python实现 蓝桥杯 2137

    问题描述 对于一个排列 A a1 a2 an 定义价值 ci 为 a1 至 ai 1 中小于 ai 的数 的个数 即 ci aj j
  • AI大语言模型时代构建全新数据平台

    在大语言模型的引领下 数据平台领军企业 Databricks 和 Snowflake 的未来重置 探讨了 Databricks 和 Snowflake 等知名平台 存储领域的 Delta udi Iceberg 还是实时化数据处理领域的 D
  • 双向链表的创建以及增删改查

    实现起来其实不难 于是我把代码做了优化 模仿了stm32的库函数哈哈哈 便于理解和修改 不足之处请指出 include stdio h include stdlib h 宏定义 define ElementType int define u
  • 免费java视频教程大全在线观看

    下面是免费java视频教程大全在线观看 尚学堂马士兵报表组件JFreeChart 尚学堂的项目管理工具 尚硅谷java20天 尚硅谷SVN 更多java视频与学习资料大家就到这里了解一下吧 http java 662p com forum
  • Java启动本机应用程序EXE的三种方式

    第一种方式 利用cmd方式 执行cmd命令 param command throws IOException public static String executeCmd String command throws IOException