2015-07-21 117 views
0

我从eclipse导出了jar文件。我从命令行运行它。但是,得到以下exception-运行jar文件时出现NoClassDefFoundError

F:\>java -jar demo1.jar 
Exception in thread "main" java.lang.NoClassDefFoundError: a/Driver 
Caused by: java.lang.ClassNotFoundException: a.Driver 
     at java.net.URLClassLoader$1.run(URLClassLoader.java:200) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at java.net.URLClassLoader.findClass(URLClassLoader.java:188) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:303) 
     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:248) 
     at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:316) 
Could not find the main class: a.Driver. Program will exit. 

MainFest文件entries-

Manifest-Version: 1.0 
Main-Class: a.Driver 
Class-Path: F:\Selenium Jars\testng-6.0.jar 

有什么我很想念

+0

为什么清单具有绝对路径引用? 'demo1.jar的内容是什么? – MadProgrammer

+0

在class-path中,我使用硒作为testng jar的参考。稍后我将通过在lib文件夹中将该jar包装起来进行更改。 Jar内容 - 包含类文件,META-INF文件夹,.classpath文件,.project文件,testng.xml的包。我的软件包包含调用此testng.xml的主类 – Deepak

+0

解压缩Jar文件并检查“a/Driver.class'实际存在 – MadProgrammer

回答

0

你的manifest文件告诉java命令的主要方法是在Java类名为a.Driver。因此,Java将尝试从你的jar中加载该类,从条目a/Driver.class相对于你的jar的根目录,然后调用它的方法static void main(String[])。抛出的错误表明Java在jar中找不到那个文件。

相关问题