2016-03-29 158 views
-2

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

因此,在NETBEANS中工作时,我创建了一个Web应用程序,使用了Glassfish服务器。通过单击显示的文本链接

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

所以:我做了一个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指出。没有问题。

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

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

没有帮助。看起来像我的jar应该用servlet类更新或连接到单独的jar/war,但我无法弄清楚如何去做。

有人可以帮忙吗?

回答

0

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

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

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

0

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

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

+0

您正在混合两种完全不同的Java编程概念。 Matthias Steinbauer给了你一个有用的链接。 – JimHawkins