在jar文件中执行一个类

时间:2015-08-18 05:29:55

标签: java classpath

我创建了一个使用selenium-server-standalone-2.47.1.jarjavax.mail.jar的应用程序。代码适用于eclipse,但我想从命令行运行相同的代码。所以我将项目导出到一个包含selenium和javax.mail.jar的runnable jar文件。 我的代码包含RTC.java,其中包含Main函数和另一个Ex.java。 这两个类文件都是在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

然后它说无法找到或加载主类com.RTC。

我做错了什么?

2 个答案:

答案 0 :(得分:0)

  

我使用了命令:

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

它说:

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

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

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

java -jar App1.jar
  

我还使用了:

java -cp .App1.jar com.RTC
  

然后它说无法找到或加载主类com.RTC。

我并不感到惊讶。如果第一个命令得到了它,那么JAR文件名不会以点开头。无法想象为什么你试过这个。这是无稽之谈。

答案 1 :(得分:0)

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

我的代码在App.jar中。参考jar是

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

所以我用过  C:\安装> java -cp selenium-server-standalone-2.47.1.jar; javax.mail.jar; App.jar com.RTC

谢谢。