0

exe在我的战争中,我有文件WEB-INF\classes\

如何在 Java 代码中执行此文件(如何指定此文件的路径)?

command = " ? ";
Process x = p.exec(command);
4

3 回答 3

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

这是一个简化的例子;您可能还想阅读有关ProcessBuilder的更多信息。

于 2013-06-25T10:57:13.377 回答
1

这是个坏主意。简单地想象一下,您的 .war 包应该在几乎任何服务器上运行(“.war 是平台独立的”),并且您的 .exe 文件仅针对一种体系结构进行编译。

最好将您的 .exe 作为外部程序执行,仅用于独立的平台独立部分和平台相关部分。然后在java中您可以测试操作系统并在此基础上运行所需的外部程序。

阅读链接并提出类似问题。

于 2013-06-25T10:57:49.300 回答
0

在 Web 应用程序中查找文件真实位置的最佳方法是使用 ServletContext.getRealPath(请参阅http://docs.oracle.com/javaee/6/api/javax/servlet/ServletContext.html#getRealPath(java .lang.String) )

您可以从会话中访问该对象...

于 2013-06-25T10:56:44.510 回答