【问题标题】:code to run .exe file from jsp page从jsp页面运行.exe文件的代码
【发布时间】:2013-09-06 03:30:23
【问题描述】:

我想从 jsp 按钮启动一个 .exe 文件,即,当我单击 jsp 页面上的启动按钮时,它应该启动 exe 文件。 我能够使用 getruntime.exec() 和 main 方法在 java 中编写代码,并且当我运行 java 代码时,我能够启动 .exe 文件并可以在控制台中查看文件启动的结果。 我不确定如何将这个 java 类调用到 jsp 中并从那里运行 exe 文件。有人可以帮忙吗?

【问题讨论】:

    标签: java xcode jsp servlets


    【解决方案1】:

    首先你需要be familiar with java servlets。以下是一些基本步骤:

    1.创建一个servlet来运行exe程序

    package mycompany;
    
    public ExeRunnerServlet extends HttpServlet {
      protected doGet(HttpServletRequest req, HttpServletResponse res) throws Exception {
        String cmdToRunExe = //..
    
        // Implement exe running here..
    
        PrintWriter writer = res.getWriter();
        writer.append("Command has been run");
      }
    }
    

    这个 servlet 只服务于 GET http 方法。网上搜索Java运行exe的代码,如:https://stackoverflow.com/a/10686041/179630

    2。将 servlet 映射到您的 WEB-INF/web.xml 部署描述符

    <web-app>
      <servlet>
        <servlet-class>mycompany.ExeRunnerServlet</servlet-class>
        <servlet-name>ExeRunnerServlet</servlet-name>
      </servlet>
    
      <servlet-mapping>
        <servlet-name>ExeRunnerServlet</servlet-name>
        <url-pattern>/exerunner</url-pattern>
      </servlet-mapping>
    </web-app>
    

    这会将上面的 servlet 映射到 http://myhost/mywarname/exerunner

    3。从 JSP 链接它

    最后,您可以在您的 JSP 上创建一个指向上述 servlet 的 html 链接,该 servlet 将执行您的 exe 程序。假设您的 jsp 位于 http://myhost/mywarname/page.jsp

    <a href="exerunner">Run exe command</a>
    

    几句警告

    • 创建单个 servlet 并将它们手动映射到 web.xml 被认为是一种过时的方法。考虑更新的 Web 框架,例如 Spring MVC / JSF。
    • 从 java 调用 exe 通常被认为是一种不好的方法,尤其是在涉及进程分叉的情况下。我见过 jvm 占用 800mb 内存并且必须临时复制整个过程以调用 exe 命令的情况。考虑其他集成方法,例如 Web 服务。

    【讨论】:

    • 感谢您的快速帮助。它帮助了我。现在我有另一个问题。我在这里使用两个按钮,一个用于启动,另一个用于停止。使用开始按钮可以启动 exe,但是当我使用停止时,它不会停止。下面是我的jsp代码。
    • 程序是否真的响应终止信号?即使您终止调用者线程,如果 exe 程序没有响应信号,它仍然会运行
    • 嗨 gerrytan,非常感谢您帮助我。你的代码对我帮助很大。但现在我的要求发生了变化。我必须浏览一个文件,然后使用一个按钮运行 .exe 文件,该按钮应该向我显示浏览文件的内容。请您指导我。
    • 感谢上面的代码,它运行良好。但唯一的问题是 .exe 文件会在每次刷新网页时启动。
    • 嗨,gerrytan,您的解决方案帮助我启动并感谢您。很高兴您给了我几句话警告,在此您能否建议我如何使用 web 服务进行集成。我的意思是如何使用 webservice 做同样的事情。在此先感谢。
    【解决方案2】:

    将main方法改为executeProgram等其他方法,然后从jsp调用该方法。

    【讨论】:

      猜你喜欢
      • 2015-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-29
      • 2013-12-05
      • 1970-01-01
      • 2015-05-28
      • 1970-01-01
      相关资源
      最近更新 更多