通过Java后台调用本地exe程序

JAVA后台无法实现打开客户端上的应用程序以及文件,是由于JAVA本身的安全性限制,只能打开服务器本地的程序以及文件,直接上代码,测试运行即可。

import java.awt.Desktop;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class exec {/*** @author Sunxy Create By 2017-9-18 上午11:49:38* @do TODO* @param args* @throws IOException */public static void main(String[] args) throws IOException {useProcessBuilder();useAWTDesktop();useRuntimeExec();}/** * 借助java.lang.ProcessBuilder打开 * @throws IOException */ private static void useProcessBuilder() throws IOException{  //new ProcessBuilder("notepad.exe", "C:/Users/Jadyer/Desktop/test file/readme.txt").start();  List<String> commands = new ArrayList<String>();  commands.add("D:/softWare/WeChat/WeChat.exe");  //commands.add("F:/C.Project/便签.txt");  new ProcessBuilder(commands).start();  }  /** * 借助java.awt.Desktop打开 * @see 打开的目录或文件名中允许包含空格 */ private static void useAWTDesktop() throws IOException{  Desktop.getDesktop().open(new File("F:/C.Project/便签.txt"));  }  /** * 借助java.lang.Runtime打开 * @see WPS文字--------Runtime.getRuntime().exec("cmd /c start wps") * @see WPS表格--------Runtime.getRuntime().exec("cmd /c start et") * @see WPS演示--------Runtime.getRuntime().exec("cmd /c start wpp") * @see Office Word---Runtime.getRuntime().exec("cmd /c start winword") * @see Office Excel--Runtime.getRuntime().exec("cmd /c start excel") */ private static void useRuntimeExec() throws IOException{  /* * 若打开的目录或文件名中不包含空格,就用下面的方式 */ Runtime.getRuntime().exec("cmd /c start D:/softWare/WeChat/WeChat.exe");  Runtime.getRuntime().exec("cmd /c start F:/C.Project/便签.txt"); /* * (可以'运行'或'Win+R',然后输入'cmd /?'查看帮助信息) */ //Runtime.getRuntime().exec(new String[]{"cmd.exe", "/c", "D:/my local/测试用例.xls"});  /* * 借助本地安装程序打开 * 若打开的目录或文件名中包含空格,它就无能为力了..不过本地程序的安装目录允许含空格 */ String etCommand = "D:/Program Files/WPS/8.1.0.3526/office6/et.exe";  String filePath = "D:/mylocal/测试用例.xls";  Runtime.getRuntime().exec(etCommand + " " + filePath);  }  /***  public static void main(String[] args) {String path = "D:\\public.bat";Runtime run = Runtime.getRuntime();try {// run.exec("cmd /k shutdown -s -t 3600");Process process = run.exec("cmd.exe /k start " + path);InputStream in = process.getInputStream();  while (in.read() != -1) {System.out.println(in.read());}in.close();process.waitFor();} catch (Exception e) {         e.printStackTrace();}}*/
}

JS打开客户端上的应用程序或者文件(注册表方式)

如果要实现通过点击页面上,打开本地程序,则使用js代码来是实现。

  1. 使用记事本(或其他文本编辑器)创建一个openWeChat.reg文件,并写入以下内容(还可以传递参数)
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\openWeChat]
@="URL:openWeChat Protocol"
"URL Protocol"="D:\\softWare\\WeChat\\WeChat.exe"
[HKEY_CLASSES_ROOT\openWeChat\DefaultIcon]
@="D:\\softWare\\WeChat\\WeChat.exe"
[HKEY_CLASSES_ROOT\openWeChat\shell]
[HKEY_CLASSES_ROOT\openWeChat\shell\open]
[HKEY_CLASSES_ROOT\openWeChat\shell\open\command]
#@="cmd /c set m=%1 & call set m=%%m:openNotepad:=%% & call \"D:\\softWare\\Notepad++\\notepad++.exe\" %%m%% & exit"
@="D:\\softWare\\WeChat\\WeChat.exe"
  1. 修改参数,按下图修改这几处后,保存为xxx.reg文件,双击执行,注册表注册成功。

  2. 调用,在html中引用 <a href="openWeChat:">微信</a> openWeChat 对应注册表中的名称,注意后面的冒号不要丢掉
<!-- 操作 菜单 -->
<li class="menu-item"><div class="menu"><a class="menu-hd"  style="width:68px;">操作<b class="bt"></b></a><div class="menu-bd" style="width:80px;line-height:1.7;" role="menu" aria-hidden="true" id="menu-4"><div id = "oper"><a href="openWeChat:">微信</a></div></div></div>
</li>


Java | 通过程序代码打开EXE应用或者文件相关推荐

  1. NSIS实现安装前检测是否安装程序,程序是否运行,安装后关联程序默认打开方式,刷新文件图标

    NSIS实现安装前检测是否安装程序,程序是否运行,安装后关联程序默认打开方式,刷新文件图标 这段时间在公司研究C#程序的安装包尝试了vs自带的setup项目,效果不尽如意跟直接压缩没太大区别.老大让我 ...

  2. python下载大文件mp4_Python代码打开本地.mp4格式文件的方法

    Python代码打开本地.mp4格式文件的方法 想通过编写Python代码来打开本地的.mp4格式文件,使用os模块来操作文件.我的电脑默认的是QQ影音播放器,执行Python代码打开默认播放器,播放 ...

  3. python读取mp4文件失败_Python代码打开本地.mp4格式文件的方法-mp4文件

    Python开发技术的应用相信有不少的小伙伴都有所了解,简单的说那就是非常的强大,Python开发技术的应用是非常广泛的,本篇文章扣丁学堂Python培训小编就给读者们分享一下Python代码打开本地 ...

  4. Java——将程序输出为exe文件

    Java学习日记 文章目录 Java学习日记 一.如何生成调用jar包的exe程序? 二.步骤 1.将程序转为jar包 2.使用exe4j软件将jar包转为exe程序 总结 一.如何生成调用jar包的 ...

  5. Java桌面程序打包成exe可执行文件

    前言: 我们都知道Java可以将二进制程序打包成可执行jar文件,双击这个jar和双击exe效果是一样一样的,但感觉还是不同.其实将java程序打包成exe也需要这个可执行jar文件. 准备: ecl ...

  6. 火狐浏览器中打开java_Ubuntu下通过Firefox Opera Chromium浏览器直接执行java应用程序(打开java jnlp文件)实现在服务器远程虚拟控制台完成远程管理的方法...

    远程虚拟控制台依赖于java运行环境(jre),在通过浏览器打开链接前,系统必须安装jre环境,远程管理控制台其实就是一个java程序,打开相应的网站会下载一个jnlp(java网络加载协议)的文件, ...

  7. 关于如何将java桌面程序打包成exe可执行文件

    一.先把java文件打包成jar 在Eclipse中在你要打包的项目上右击(如图我想打包一个叫graphicproject的项目) 出来一个快捷菜单,点Export,然后Next,出现如下界面注意把红 ...

  8. java 用程序代码解释继承_关于初级java程序员笔试题

    关于初级java程序员笔试题 Sun 认证Java程序员考试内容涉及Java所有相关知识.编程概念及applet开发技巧.下面是小编整理的关于初级java程序员笔试题,欢迎大家参考! 第一题:判断题 ...

  9. 简单java小程序代码_求简单的JAVA小程序的源代码

    展开全部 <Java就业培训教程>P34源码 程序清单:Promote.java class Promote { public static void main(String args[] ...

最新文章

  1. spring JdbcTemplate 在项目中的浅层(5个使用场景)封装
  2. tom启动报错:org.xml.sax.SAXParseException: Content is not allowed in prolog.
  3. mysql更新数据能回滚吗_MySQL数据回滚-误更新和删除时快速恢复
  4. 东莞华勤通讯软件测试怎么样,【社招】华勤通讯NBD测试验证部急聘岗位-东莞...
  5. MYSQL(3)---MySQL的基本概念介绍
  6. 电脑唯一标识_什么是电脑网卡物理地址以及2种查询物理地址的方法?
  7. 使用SQL Server进行时间点恢复
  8. 【NOIP2000】【vijos1347】乘积最大
  9. Catalyst 65xx系列交换机配置(Native IOS)
  10. app开发需要哪些技术?4种app制作方法对比
  11. 牛客刷题---年会抽奖
  12. hadoop系列-hadoop版本选择
  13. npm install报错ERR! code ETIMEDOUT的解决办法
  14. ffmpeg命令下载m3u8原画质视频
  15. android 中文冒号,Kotlin中双冒号::使用方法
  16. (06) Apache Felix 入门 - 06
  17. Mac下cmake使用
  18. stm32——手动移植HAL库以及错误解决方案(以STM32F103ZE为例)
  19. 【Wwise】一篇文看懂WwiseUnity热更
  20. 【圣诞来了】3分钟教你用java画一颗彩色圣诞树,送给别人作为圣诞礼物吧

热门文章

  1. 产品经理进修第五天 管理你的产品团队
  2. 介绍一个监控网卡及网络流量的好工具NICSTAT
  3. java分数变小数的函数_用JAVA解决ACM分数变小数
  4. 【笑傲江湖】编译可用c++源码
  5. 将开源融入科学,发展科学软件生态
  6. SQL2000装win10问题解决
  7. 用selenium模拟浏览器爬取淘宝订单信息
  8. Java多线程实现电影院在线选座
  9. 更新|UA开发者模式、页面翻译功能、修复浏览器插件问题
  10. 模具铜公的加工方法与质量鉴别