从Servlet运行可执行jar

时间:2016-03-29 09:59:28

标签: servlets

已经无法解决问题2天了。我有一个可执行的jar,双击运行。简单的JFrame表单。我需要把它放在一个网站上,所以点击网站上的链接应该执行我的应用程序(我的jar)。

因此,在NETBEANS工作,我创建了一个Web应用程序,使用了Glassfish服务器。我创建了一个MyServlet.java,它只打印了一些行:

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    response.setContentType("text/html;charset=UTF-8");
    try (PrintWriter out = response.getWriter()) {
        /* TODO output your page here. You may use following sample code. */
        out.println("<h2>gdfdddddddddddddd</h2>");          

      //  Runtime.getRuntime().exec("java -jar JavaApplication131.jar");         

    }
}

在index.html中指出了这个servlet:

<body>
    <h4>CLick33 <a href="MyServlet">MyServlet Page</a></h4>
</body>

因此,单击链接文本即可显示。没问题。

现在我还需要以某种方式执行我的jar。我尝试插入servlet:

Runtime.getRuntime().exec("java -jar JavaApplication131.jar"); 

没有帮助。似乎我的jar应该以某种方式用servlet类更新或连接到单独的jar / war,但我无法弄清楚如何去做。

有人可以帮助吗?

2 个答案:

答案 0 :(得分:0)

您在问题中完全误解了Servlet和可执行JAR的概念。您尝试使用代码实现的是在Servlet容器的上下文中执行JAR。 servlet容器的安全管理器可能对执行外部工具有限制,因此可能无法执行外部JAR。

您要求的实际上是在用户客户端上执行JAR是否正确?如果是这种情况,只需提供JAR的下载链接以及如何执行它的说明。

甚至可以更好地了解Java网络启动协议,该协议专门用于启动从Web资源下载的桌面应用程序。 https://docs.oracle.com/javase/tutorial/deployment/deploymentInDepth/jnlp.html

答案 1 :(得分:0)

我希望用户不要下载我的jar。我希望将它存储在服务器上,然后用链接打开它。

也许你可以提供一些例子?