2016-03-29 219 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