我已经创建了一个Java程序的可执行jar,我想通过我的Servlet在同一台机器上访问它,或者它可以在另一台机器上。我怎么能这样做?
我找到了许多使用网络/ TCP调用Servlet程序的解决方案...但是我正在寻找Servlet来调用Java程序的功能。
答案 0 :(得分:1)
调用JavaProg函数意味着产生另一个非常昂贵的JVM进程。 你为什么不把这个jar(你写的是创建这个程序,所以你知道它是如何构建的)进入你的web应用程序并让你的serlvet调用适当的类?
是否可行?
答案 1 :(得分:1)
java程序和Java servlet之间没有太大区别。所以你只需导入java程序就可以直接在你的java servlet中使用。
但是,有一点需要注意的是,您要导入的java程序,即您的jar文件必须放在WEB-INF / class /目录中。
答案 2 :(得分:1)
找到更为具体的another solution
如果您可以在同一个JVM中运行所有内容,则可以执行以下操作:
public class Launcher { ... public static void main(String [] args)throws Exception { launch(Class.forName(args [0]),programArgs(args,1)); }
protected static void launch(Class program, String[] args) throws Exception {
Method main = program.getMethod("main", new Class[]{String[].class});
main.invoke(null, new Object[]{args});
}
protected static String[] programArgs(String[] sourceArgs, int n) {
String[] destArgs = new String[sourceArgs.length - n];
System.arraycopy(sourceArgs, n, destArgs, 0, destArgs.length);
return destArgs;
}
使用提供的/配置的参数调用方法启动。
答案 3 :(得分:0)
您可以简单地将jar添加到servlet应用程序中。在servlet中导入jar并调用要在servlet中使用的相应类。