如何从Servlet访问/调用Java程序

时间:2012-01-03 06:15:47

标签: java java-ee servlets executable-jar

我已经创建了一个Java程序的可执行jar,我想通过我的Servlet在同一台机器上访问它,或者它可以在另一台机器上。我怎么能这样做?

我找到了许多使用网络/ TCP调用Servlet程序的解决方案...但是我正在寻找Servlet来调用Java程序的功能。

4 个答案:

答案 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中使用的相应类。