Java 将JBOSS WAR文件夹转换为可执行JAR

Java 将JBOSS WAR文件夹转换为可执行JAR,java,crystal-reports,jboss,Java,Crystal Reports,Jboss,我有一个ANT构建脚本,它将WAR文件夹部署到我的JBOSS部署目录中。我可以将其转换为可执行的WAR/JAR文件并运行它吗 例如,如果我的文件夹名为:MYAPP.WAR,我可以生成:NEWAPP.WAR,其中NEWAPP.WAR是一个可执行文件。如果我把它放在Jboss目录中并启动Jboss,它会把它取起来吗?我是否应该先将原始文件夹重命名为其他文件夹以进行测试 编辑:对不起,我好像不是很清楚。我问这个问题的原因是因为我正在尝试将Crystal Reports用于Eclipse。当我使用他们

我有一个ANT构建脚本,它将WAR文件夹部署到我的JBOSS部署目录中。我可以将其转换为可执行的WAR/JAR文件并运行它吗

例如,如果我的文件夹名为:MYAPP.WAR,我可以生成:NEWAPP.WAR,其中NEWAPP.WAR是一个可执行文件。如果我把它放在Jboss目录中并启动Jboss,它会把它取起来吗?我是否应该先将原始文件夹重命名为其他文件夹以进行测试


编辑:对不起,我好像不是很清楚。我问这个问题的原因是因为我正在尝试将Crystal Reports用于Eclipse。当我使用他们的插件创建一个新项目时,它工作得很好,当我手动将库添加到现有的动态Web项目时,问题就出现了。这是因为插件需要Jboss来部署项目。在这样做的过程中,Jboss获取整个项目并将其部署到新的WAR文件中。问题是这个特定的项目是为了扩展现有的应用程序而设计的。所以我通常做的是通过ant脚本部署代码,该脚本将所有文件放在现有WAR文件夹下,并从Eclipse启动Jboss,但我没有将其配置为部署,它只是启动应用程序,因为WAR文件夹就在那里

使用Crystal Reports插件时,会发生以下情况: 1) 如果我配置要部署的项目,当然会出现错误,因为我的Eclipse项目不包括作为原始项目一部分的所有配置文件(如XML等)。我不想将它们包括在扩展项目中,因为这会影响我的整个源代码管理脚本。 2) 如果我更新我的Ant脚本tin只包括crystal report添加的所有类和文件,我会得到一个ZipException。在浏览代码时,Crystal Reports代码似乎假设代码部署在单个WAR文件中,并试图提取所需的配置和报告文件,但由于项目部署在WAR文件夹中,这当然失败

因此,我提出这个问题的理由是:如果我将用ANT脚本创建的WAR文件夹转换为单个WAR文件,Crystal Reports代码可能会工作


想法?你们是不是更困惑了?

你们在这里似乎混淆了两个概念:

用于打包web应用程序。如果没有(也不会在)应用服务器或servlet容器,它就没有意义。没有“可执行”的WAR文件;但是,只要容器配置适当,它确实可以热部署(例如,在不重新启动容器的情况下将其放入指定文件夹后立即部署)


用于打包一组类和/或资源,可能构成应用程序。可以在JAR文件的清单中添加代码,这样运行
java-JAR-JAR\u file\u name
将导致启动指定的条目类。在操作系统中,可以将
java-jar…
默认关联到
.jar
文件扩展名(从命令行/双击/etc…)直接启动jar。这就是“可执行jar”这个名字的由来。

当你说“可执行”时,似乎你指的不是大多数人的意思。如果您有一个名为MYAPP.WAR的目录,当您将其放置在部署目录中时,它会自动部署,那么您只需将其压缩(
zip\u MYAPP.WAR MYAPP.WAR
)并通过将其放置在部署目录中来部署。是的,在执行此操作之前,您可能应该取消部署MYAPP.WAR


您还可以创建一个归档文件,它同时是一个可执行的JAR文件和一个可部署的WAR文件。你可以通过研究他们的WAR文件来了解他们是如何做到这一点的。

我不太理解你的问题,但也许JBoss Embedded就是你想要的

你说的“可执行文件”是什么意思?如果您在适当的JBoss目录(通常为${JBoss_HOME}/server/default/deploy/)中填入WAR,它将进行热部署。这可能就是您的ANT脚本所做的。