2017-04-14 44 views
0

我想創建一個平臺(PlatA),它是一個使用apache tomcat的java servlet web應用程序。 PlatA允許您上傳和解壓縮jar/war文件(也是java servlet webapp)並將其保存到一個目錄中。我的問題是現在我解壓縮jar/war文件後,如何添加一個鏈接到Plat(A)來解壓縮jar/war文件Java servlet - 如何在java servlet中執行jar文件

+1

這個應用程序在做什麼?你想通過從servlet運行它來實現什麼?通常,您不會從servlet運行Java應用程序。您可以使用jar文件中的類和方法。 –

+0

所以我創建了一個使用servlet和tomcat的平臺。該平臺允許用戶通過Web表單上傳和解壓縮Jar文件。解壓後,我希望能夠執行已上傳的文件。 –

+1

您是否意識到:1. jar文件通常具有依賴關係,並且不會在沒有這些依賴關係的情況下運行; 2.這是一個巨大的安全風險:你執行的jar文件可能只是刪除服務器上的所有文件,或者將它們發送到其他地方,或者讓服務器跪下,如果你沒有非常非常認真沙盒? –

回答

1

使用java.lang。 ProcessBuilder

該類用於創建操作系統進程。

ProcessBuilder pb = new ProcessBuilder("java", "-jar", "absolute/path/of/jar"); 
Process p = pb.start(); 
+0

嗨,謝謝你的回覆。有了這段代碼,是否有必要解壓JAR文件的內容? –

+0

@qwertyayyy即使沒有閱讀javadoc,你覺得這段代碼幹什麼?如果有疑問,請閱讀javadoc。那麼,你有什麼結論?在執行java -jar NameofJarFile.jar之前解壓縮jar嗎?那麼你爲什麼認爲你應該在這裏做? –

+0

謝謝,我仍然是這一切的初學者。但謝謝你的提示。 –