在我的战争中,我在exe
WEB-INF\classes\
个档案
如何在Java代码中执行此文件(如何指定此文件的路径)?
command = " ? ";
Process x = p.exec(command);
答案 0 :(得分: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的更多信息。
答案 1 :(得分:1)
这是个坏主意。想象一下,你的.war包装应该几乎可以在任何服务器上运行(“.war是独立平台”),你的.exe文件只针对一种架构进行编译。
最好将执行.exe作为外部程序,仅用于独立的平台独立和平台相关部分。然后在java中,您可以测试操作系统,并在此基础上运行所需的外部程序。
阅读this链接中的类似问题。
答案 2 :(得分:0)
在Web应用程序中查找文件的真实位置的最佳方法是使用ServletContext.getRealPath(请参阅http://docs.oracle.com/javaee/6/api/javax/servlet/ServletContext.html#getRealPath(java.lang.String))
您可以从会话中访问该对象...