[英]How can I access/call Java program from a Servlet
我已經創建了一個Java程序的可執行jar,我想通過我的Servlet在同一台機器上訪問它,也可以在另一台機器上訪問它。 我該怎么辦?
我發現了許多使用網絡/ TCP通過Java程序調用Servlet的解決方案...但是我正在尋找Servlet來調用Java程序的功能。
如果可以在同一個JVM中運行所有內容,則可以執行以下操作:
公共類啟動器{...公共靜態void main(String [] args)引發異常{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;
}
並使用提供的/配置的參數調用方法啟動。
調用JavaProg函數意味着產生另一個非常昂貴的JVM進程。 為什么不把這個jar(您寫過您正在創建此程序,所以您知道它是如何構建的)不放入Web應用程序中,並使您的serlvet只是調用適當的類?
完全可行嗎?
Java程序和Java Servlet之間沒有太大區別。 因此,您只需導入Java程序,即可在Java Servlet內部直接使用它。
但是,要注意的一件事是,要導入的Java程序(即jar文件)必須放在WEB-INF / class /目錄中。
您可以輕松地將jar添加到servlet應用程序中。將該jar分散到servlet中,然后調用要在servlet中使用的適當類。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.