在 jar 文件中执行 class

Executing a class in jar file

我创建了一个使用 selenium-server-standalone-2.47.1.jarjavax.mail.jar 的应用程序。该代码适用于 Eclipse,但我想从命令行 运行 相同。所以我将项目导出到一个包含 selenium 和 javax.mail.jar 的 运行nable jar 文件。 我的代码包含具有 Main 函数的 RTC.java 和另一个 Ex.java。 class 文件都在 com 文件夹中生成。 我的 App1.jar 文件位于 C:\installers.

我使用了命令:

 c:\installers> java -cp App1.jar com.RTC

它说:

Exception in thread "main" java.lang.NoClassDefFoundError: org.openqa.selenium.WebDriver

我还使用了:

 java -cp .App1.jar com.RTC

然后提示无法找到或加载主程序 class com.RTC.

我做错了什么?

I used the command:

c:\installers> java -cp App1.jar com.RTC

It says:

Exception in thread "main" java.lang.NoClassDefFoundError:
org.openqa.selenium.WebDriver

该异常通常意味着找到了一个 .class 文件,但它不包含正确的 class。检查您是如何将其放入 JAR 中的。它的目录和文件名必须与其包和 class 名称匹配。

有时这似乎也意味着未找到辅助class。通常在主 JAR 文件的清单的 class-path 条目中提到辅助 JAR 文件以及 main-class 名称,因此您可以使用

java -jar App1.jar

Further I used:

java -cp .App1.jar com.RTC

Then it says could not find or load main class com.RTC.

我并不感到惊讶。如果第一个命令就此完成,则 JAR 文件名不以点开头。无法想象你为什么尝试这个。胡说八道。

我找到了解决方案。我不需要创建一个包含引用 jar 的 jar 文件。我必须提到我的 jar,它有我的代码和我在 class 路径中使用的参考 jar。

我的代码在 App.jar.The 个参考罐中

selenium-server-standalone-2.47.1.jar 和 javax.mail.jar.

所以我用了 c:\installers> java -cp selenium-server-standalone-2.47.1.jar;javax.mail.jar;App.jar com.RTC

谢谢。