已经无法解决问题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,但我无法弄清楚如何去做。
有人可以帮助吗?
答案 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。我希望将它存储在服务器上,然后用链接打开它。
也许你可以提供一些例子?