zoukankan      html  css  js  c++  java
  • Java启动exe

    启动的是后台进程,目测可以删除文件,但是写文件不行,向窗口中写命令不行
    if ("exe".equals(key)) {
        try {
            Desktop.getDesktop().open(new File("D:/lcx/shell/sql001.exe"));
        } catch (IOException e) {
            e.printStackTrace();
            try {
                data.put("RunExeError", e.getMessage());
            } catch (JSONException e1) {
                e1.printStackTrace();
            }
        }
    }

    如果是直接Java代码运行main方法,启动的是前台进程,但是如果打包成war包,丢到jboss中启动服务,再执行该程序,Desktop启动的exe是后台进程,后台进程有些操作无法完成,就测试的结果而言,至少写文件是不行的。

    注:该exe是按键小精灵程序,也许是案件精灵的代码不支持后台操作写文件。

    以前在上海也遇到过类似的问题。当时项目部署在webservice下,需要一个调用打印机打印协议文件的功能。当时部署了很多台服务器,其中个别服务器无法调用打印机打印文件,但是在进程中发现了代码调用启动起来的打印机进程,很明显,部分服务器启动exe程序是后台进程,导致无法打印文件。对比能调用打印机的服务器和无法调用打印机的服务器,最终发现区别在于webservice不一样,能打印的服务器,装的是完整版的webservice,而不能打印的服务器装的是简易版的webservice,统一改装完整版以后,没有再出现过不能打印的情况。

    这里用的是jboss,我并不太清楚是否也是jboss的问题。

  • 相关阅读:
    git 合并两个仓库
    git 合并两个仓库
    操作系统
    域名
    域名
    .NET Framework基本概念
    .NET Framework基本概念
    拓扑排序
    PHP 数组
    PHP Switch 语句
  • 原文地址:https://www.cnblogs.com/LcxSummer/p/13710832.html
Copyright © 2011-2022 走看看