1

首先是主要问题:

我们在 tomcat 中有一个 Web 应用程序,当系统试图在 12 点发送电子邮件时,它会过载并关闭。起初它只有数百个(服务器表现良好),但现在它有数千个并且用完了所有东西。

我们想在不同的 JVM 中“运行”这些作业。为此,我被要求创建一个独立的应用程序来加载 Spring 和休眠上下文并调用发送电子邮件和短信的方法;并通过命令行运行它。但是他们想使用与tomcat服务器相同的“战争”(避免任何类型的复制)。

在此处输入图像描述

我已经通过 Eclipse 创建了应用程序,当我点击运行时,它会发挥它的魔力。但是当我尝试通过命令行运行它时,我得到一个 NoClassDefFoundError,显然,这要归功于 ClassPath 参考问题。我试图将路径放入“WEB-INF”目录而没有成功。如果这意味着运行这个应用程序,我们不在乎扼杀可移植性。

C:\Program Files\Java\jdk1.6.0_38\bin>java -jar -cp ".;D:\powerfollowups\trunk\WebContent\WEB-INF\lib\*;D:\powerfollowups\trunk\WebContent\WEB-INF\clases" D:\powerfollowups\workspace\PFUReportSender\target\pwrFU-2.jar

我还尝试将它放在清单的 Class-Path 中,如下所示:

Manifest-Version: 1.0
Main-Class: com.powerfollowups.StandAlonePFUReportSender
Class-Path: D:\powerfollowups\trunk\WebContent\WEB-INF\lib\* D:\powerfollowups\trunk\WebContent\WEB-INF\clases

如何将所有这些添加到类路径中?

优化代码现在不是一个选项。

4

1 回答 1

2

你需要在类路径上做一些事情:

  • WEB-INF/classes - 这包含你所有来自 WAR 的自定义类
  • WAR 中的类所依赖的所有库 jar
  • 您的命令行应用程序所依赖的所有 jar

编辑:根据您更新的问题

java -jar -cp ".;D:\powerfollowups\trunk\WebContent\WEB-INF\lib\*;D:\powerfollowups\trunk\WebContent\WEB-INF\classes"  D:\powerfollowups\workspace\PFUReportSender\target\pwrFU-2.jar
于 2013-03-01T19:24:22.390 回答