testng 中线程 "main" java.lang.NoClassDefFoundError 中的异常
Exception in thread "main" java.lang.NoClassDefFoundError in testng
我在测试 testNG 时在程序中遇到上述错误。我还通过 help->install new 安装了我的 testng 插件。
我知道 NoClassDefFoundError 意味着 class 在编译时存在于 class 路径中,但它不存在于class运行时的路径。
下面是我的堆栈跟踪。
Exception in thread "main" java.lang.NoClassDefFoundError: com/google/inject/Stage
at org.testng.internal.Configuration.<init>(Configuration.java:33)
at org.testng.TestNG.init(TestNG.java:216)
at org.testng.TestNG.<init>(TestNG.java:200)
at org.testng.remote.AbstractRemoteTestNG.<init>(AbstractRemoteTestNG.java:17)
at org.testng.remote.support.RemoteTestNG6_12.<init>(RemoteTestNG6_12.java:18)
at org.testng.remote.support.RemoteTestNGFactory6_12.createRemoteTestNG(RemoteTestNGFactory6_12.java:16)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:67)
Caused by: java.lang.ClassNotFoundException: com.google.inject.Stage
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:602)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
... 7 more
我不确定如何更改我的 class 路径文件来解决问题。
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7">
<attributes>
<attribute name="module" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.testng.TESTNG_CONTAINER"/>
<classpathentry kind="output" path="bin"/>
</classpath>
我的 java class 文件也在 src 文件夹中,如下所示。
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
public class ScreencastTestClass {
@BeforeTest
public void StartRCServiver() {
System.out.println(" RC server starting......");
}
public void testLogIn() {
System.out.println(" Test is executing......");
}
@AfterTest
public void ShutDownRCServer() {
System.out.println(" RC server stopping......");
}
}
没有pom文件,下面是现有的文件和文件夹结构。
在 pom.xml
中添加缺少的 google-guice-core
依赖项。
<dependency>
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
<version>4.1.0</version>
</dependency>
或下载 jar here 并将其添加到类路径中。
我在测试 testNG 时在程序中遇到上述错误。我还通过 help->install new 安装了我的 testng 插件。
我知道 NoClassDefFoundError 意味着 class 在编译时存在于 class 路径中,但它不存在于class运行时的路径。
下面是我的堆栈跟踪。
Exception in thread "main" java.lang.NoClassDefFoundError: com/google/inject/Stage
at org.testng.internal.Configuration.<init>(Configuration.java:33)
at org.testng.TestNG.init(TestNG.java:216)
at org.testng.TestNG.<init>(TestNG.java:200)
at org.testng.remote.AbstractRemoteTestNG.<init>(AbstractRemoteTestNG.java:17)
at org.testng.remote.support.RemoteTestNG6_12.<init>(RemoteTestNG6_12.java:18)
at org.testng.remote.support.RemoteTestNGFactory6_12.createRemoteTestNG(RemoteTestNGFactory6_12.java:16)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:67)
Caused by: java.lang.ClassNotFoundException: com.google.inject.Stage
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:602)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
... 7 more
我不确定如何更改我的 class 路径文件来解决问题。
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7">
<attributes>
<attribute name="module" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.testng.TESTNG_CONTAINER"/>
<classpathentry kind="output" path="bin"/>
</classpath>
我的 java class 文件也在 src 文件夹中,如下所示。
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
public class ScreencastTestClass {
@BeforeTest
public void StartRCServiver() {
System.out.println(" RC server starting......");
}
public void testLogIn() {
System.out.println(" Test is executing......");
}
@AfterTest
public void ShutDownRCServer() {
System.out.println(" RC server stopping......");
}
}
没有pom文件,下面是现有的文件和文件夹结构。
在 pom.xml
中添加缺少的 google-guice-core
依赖项。
<dependency>
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
<version>4.1.0</version>
</dependency>
或下载 jar here 并将其添加到类路径中。