2017-04-14 33 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

谢谢,我仍然是这一切的初学者。但谢谢你的提示。 –