【问题标题】:How to run .exe file which is stored in war file?如何运行存储在war文件中的.exe文件?
【发布时间】:2013-11-08 12:18:54
【问题描述】:

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

【问题讨论】:

  • 那么如何运行或者如何获取路径?
  • @Antonioss 我想运行那个.exe
  • 这是某种嵌入式服务器,需要解压war文件并运行exe吗?
  • 为什么不在服务器上搜索.exe文件,然后打印路径。

标签: java jsf-1.2


【解决方案1】:

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

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

【讨论】:

  • 如何将该 exe 提取到临时目录。
  • 将文件作为流获取(getResourceAsStream 方法)并将其内容作为文件存储在某处。谷歌搜索getResourceAsStreamcopy stream into file
【解决方案2】:

以下方法可行:

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();

【讨论】:

    猜你喜欢
    • 2010-10-06
    • 2011-02-28
    • 1970-01-01
    • 1970-01-01
    • 2013-01-15
    • 2012-02-02
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    相关资源
    最近更新 更多