Java 在GrailsWeb应用程序中使用独立的JAR文件

Java 在GrailsWeb应用程序中使用独立的JAR文件,java,grails,web-applications,jar,Java,Grails,Web Applications,Jar,我正在构建一个web应用程序,它的核心需要使用一个独立的JAR文件。本质上,我有一个打包为JAR文件的应用程序模块,我可以使用如下命令在命令提示符下成功运行:java-JAR myapp.JAR,并可以根据需要传递一些附加参数(基本上是要处理的文件名)。这个JAR与其他JAR文件有一些依赖关系,这些文件放在libs文件夹中,与myapp.JAR文件位于同一文件夹中。所有这些都可以作为通过命令提示符执行的独立JAR文件正常工作 现在,我需要在web应用程序中使用这个JAR,并进行同样的处理。我已经

我正在构建一个web应用程序,它的核心需要使用一个独立的JAR文件。本质上,我有一个打包为JAR文件的应用程序模块,我可以使用如下命令在命令提示符下成功运行:
java-JAR myapp.JAR
,并可以根据需要传递一些附加参数(基本上是要处理的文件名)。这个JAR与其他JAR文件有一些依赖关系,这些文件放在libs文件夹中,与
myapp.JAR
文件位于同一文件夹中。所有这些都可以作为通过命令提示符执行的独立JAR文件正常工作

现在,我需要在web应用程序中使用这个JAR,并进行同样的处理。我已经获得了一个基于Grails的web应用程序设置,其中包含所需的UI等。我已经在Grails web应用程序的
lib
文件夹中添加了所有所需的JAR库。我将
myapp.jar
文件也放在同一个lib文件夹中

对于如何通过web应用程序的控制器方法运行这个
myapp.jar
文件,我有点困惑?基本上,我的web应用程序中有一个表单,在该表单中,用户将指定需要由
myapp.jar
处理的所需文件路径,然后用户将单击Run/Submit按钮。在此基础上,我需要使用提供的文件路径参数启动
myapp.jar
,并将生成/处理的文件放在某个指定位置

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

String[] args = new String[] { '/path/inputFile', '/path/outputFile' }
com.example.MyApp.main(args)
// do something with output file
有没有人能指导我如何正确地完成这项工作


如果您查看
myapp.jar
文件中
/META-INF/
目录中的
MANIFEST.MF
,您应该会找到
Main Class
属性。例如,如果主类是
com.example.MyApp
,那么应该能够从代码(即,从Grails控制器方法)调用它的静态main方法


如果您可以访问
myapp.jar
的源代码,您最好先查看
main
的功能,然后直接使用API。

谢谢您的指导,John。我现在正在尝试第一种方法,并且有一种感觉可能会达到我的目的。不幸的是,我无法访问
myapp.jar
的源代码,因此无法直接使用API。John,因此我可以使用您提到的方法。但是有一些小的修改。使用您提到的语法,我得到一个类型错误:
Groovy:No expression for the array constructor call
。因此,我修改了语法并将这两条语句组合为:
com.example.MyApp.main([“inputFile”]作为String[])
。这个现在很好用。再次感谢你为我指明了正确的方向。约翰,如果你不介意的话,请你也看一下好吗?这是这个问题的延伸,但主题稍有不同,所以希望在不同的对话中跟踪它。