在Grails Web应用程序中使用独立的JAR文件

时间:2015-09-28 18:17:51

标签: java grails web-applications jar

我正在构建一个需要在其核心使用独立JAR文件的Web应用程序。本质上,我有一个打包为JAR文件的应用程序模块,我可以使用类似java -jar myapp.jar之类的命令在命令提示符下成功运行,并且可以根据需要传递一些其他参数(基本上是要处理的文件名)。此JAR对其他JAR文件具有一些依赖性,这些文件位于与myapp.jar文件位于同一文件夹中的libs文件夹中。所有这些都可以作为通过命令提示符执行的独立JAR文件。

现在,我需要在Web应用程序中使用此JAR并执行相同类型的处理。我已经有一个基于Grails的Web应用程序设置,其中包含所需的UI等,我已经在Grails Web应用程序的lib文件夹中添加了所有必需的JAR库。我已将myapp.jar文件放在同一个lib文件夹中。

我对如何通过我的Web应用程序的Controller方法运行此myapp.jar文件感到有些困惑?基本上,我在我的Web应用程序中有一个表单,用户可以在其中指定myapp.jar需要处理的所需文件路径,然后用户单击“运行/提交”按钮。之后,我需要使用提供的文件路径参数启动myapp.jar,并将生成/处理的文件放在指定的位置。

因此,基本上通过Web应用程序的控制器方法在命令提示符下执行类似于独立JAR执行的处理。

有人可以指导我完成这项工作的正确程序吗?

非常感谢这方面的任何帮助。

1 个答案:

答案 0 :(得分:3)

如果查看MANIFEST.MF文件中/META-INF/目录中的myapp.jar,您应该找到Main-Class属性。例如,如果主要类是com.example.MyApp,您应该可以从代码中调用它的静态主方法(即,从您的Grails Controller方法)。

String[] args = new String[] { '/path/inputFile', '/path/outputFile' }
com.example.MyApp.main(args)
// do something with output file

如果您有权访问myapp.jar的来源,那么最好还是查看main的内容,然后直接使用API​​。