如何运行存储在war文件中的.exe文件?

时间:2013-11-08 12:18:55

标签: java jsf-1.2

如何在我的java类中获取该exe文件的路径。该exe文件存储在war文件中(war文件是否部署在服务器中)?

2 个答案:

答案 0 :(得分:2)

您无法直接从.exe启动war文件,因为Windows无法访问war包的内容。你必须先提取它(例如到temp dir),然后从那里调用新的进程。

至于路径,您可以通过类加载器获取URL资源。您需要ClassLoader#getResourceClassLoader#getResourceAsStream

答案 1 :(得分:1)

以下方法可行:

1)准备可执行文件的完整路径:

 ServletContext context = getContext();
String fullPath = context.getRealPath("/WEB-INF/classes/executable");

2)像往常一样执行:

String[] cmd = { fullPath /*[...] arguments */};
Process p = Runtime.getRuntime().exec(cmd);
p.waitFor();