testNG jar包启动找不到org.testng.TestNG
主要是因为打包时依赖的jar包没有打入,网上有很多需要将对应的jar单独拷贝出来然后通过classpath引用启动,但是感觉这个就是个无底洞。拷贝了这么多个包最后还是说找不到ObjectId

启动命令是(需要cd到这个文件夹下面)
java -classpath test.jar;testng-6.9.4.jar;jcommander-1.64.jar;extentreports-3.0.3.jar;freemarker-2.3.23.jar org.testng.TestNG system_pro.xml
执行结果:
C:\Users\admin\Desktop\test>java -classpath test.jar;testng-6.9.4.jar;jcommander-1.64.jar;extentreports-3.0.3.jar;freemarker-2.3.23.jar org.testng.TestNG system_pro.xml
[TestNG] Running:
C:\Users\admin\Desktop\test\system_pro.xml ===============================================
Parallel tests
Total tests run: 1, Failures: 1, Skips: 0
=============================================== Exception in thread "main" java.lang.NoClassDefFoundError: org/bson/types/ObjectId
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
at java.lang.Class.privateGetPublicMethods(Class.java:2902)
at java.lang.Class.getMethods(Class.java:1615)
at freemarker.ext.beans.ClassIntrospector.discoverAccessibleMethods(ClassIntrospector.java:464)
at freemarker.ext.beans.ClassIntrospector.discoverAccessibleMethods(ClassIntrospector.java:457)
at freemarker.ext.beans.ClassIntrospector.createClassIntrospectionData(ClassIntrospector.java:268)
at freemarker.ext.beans.ClassIntrospector.get(ClassIntrospector.java:244)
at freemarker.ext.beans.BeanModel.<init>(BeanModel.java:114)
at freemarker.ext.beans.BeanModel.<init>(BeanModel.java:104)
at freemarker.ext.beans.StringModel.<init>(StringModel.java:52)
at freemarker.ext.beans.StringModel$1.create(StringModel.java:37)
at freemarker.ext.beans.BeansModelCache.create(BeansModelCache.java:71)
at freemarker.ext.util.ModelCache.getInstance(ModelCache.java:84)
at freemarker.ext.beans.BeansWrapper.wrap(BeansWrapper.java:860)
at freemarker.template.DefaultObjectWrapper.handleUnknownType(DefaultObjectWrapper.java:235)
at freemarker.template.DefaultObjectWrapper.wrap(DefaultObjectWrapper.java:214)
at freemarker.template.WrappingTemplateModel.wrap(WrappingTemplateModel.java:105)
at freemarker.template.DefaultListAdapter.get(DefaultListAdapter.java:75)
at freemarker.core.DynamicKeyName.dealWithNumericalKey(DynamicKeyName.java:104)
at freemarker.core.DynamicKeyName._eval(DynamicKeyName.java:69)
at freemarker.core.Expression.eval(Expression.java:78)
at freemarker.core.Assignment.accept(Assignment.java:131)
at freemarker.core.Environment.visit(Environment.java:324)
at freemarker.core.MixedContent.accept(MixedContent.java:54)
at freemarker.core.Environment.visitByHiddingParent(Environment.java:345)
at freemarker.core.ConditionalBlock.accept(ConditionalBlock.java:48)
at freemarker.core.Environment.visit(Environment.java:324)
at freemarker.core.MixedContent.accept(MixedContent.java:54)
at freemarker.core.Environment.visit(Environment.java:324)
at freemarker.core.Environment.process(Environment.java:302)
at freemarker.template.Template.process(Template.java:325)
at com.aventstack.extentreports.reporter.ExtentHtmlReporter.flush(ExtentHtmlReporter.java:145)
at java.util.ArrayList.forEach(ArrayList.java:1249)
at com.aventstack.extentreports.Report.notifyReporters(Report.java:210)
at com.aventstack.extentreports.Report.flush(Report.java:132)
at com.aventstack.extentreports.ExtentReports.flush(ExtentReports.java:261)
at com.genergy.util.ExtentTestNGIReporterListener.generateReport(ExtentTestNGIReporterListener.java:104)
at org.testng.TestNG.generateReports(TestNG.java:1090)
at org.testng.TestNG.run(TestNG.java:1049)
at org.testng.TestNG.privateMain(TestNG.java:1339)
at org.testng.TestNG.main(TestNG.java:1308)
Caused by: java.lang.ClassNotFoundException: org.bson.types.ObjectId
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 42 more
不知道哪里出了问题。。。。
另一种解决方法:
maven使用打包插件将依赖的jar包一起打包,pom.xml添加插件:
<build>
<plugins>
<plugin>
<!-- 指定项目编译时的java版本和编码方式 -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<target>1.8</target>
<source>1.8</source>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<archive>
<manifest>
<mainClass>com.genergy.Excel2Test</mainClass> <!-- 指定入口类路径 -->
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef> <!-- jar包后缀,生成的jar包形式为:project-1.0-SNAPSHOT-jar-with-dependencies.jar -->
</descriptorRefs>
</configuration>
<!-- 添加此项后,可直接使用mvn package | mvn install -->
<!-- 不添加此项,需直接使用mvn package assembly:single -->
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
通过mvn package 打好包之后,将需要执行
这里需要将测试的xml拷贝到和jar包一个路径

然后执行
java -classpath jar包名 org.testng.TestNG xml名
如:
java -classpath genergy-api-test-1.0-SNAPSHOT-jar-with-dependencies.jar org.testng.TestNG system_pro.xml
最后生成测试报告在:

testNG jar包启动找不到org.testng.TestNG的更多相关文章
- Linux上java程序的jar包启动通用脚本(稳定用过)
Linux上java程序的jar包启动通用脚本如下: #! /bin/sh export LANG="zh_CN.GBK" SERVICE_NAME=` .sh` SCRIPT_N ...
- springboot打包成jar包后找不到xml,找不到主类的解决方法
springboot打包成jar包后找不到xml,找不到主类的解决方法 请首先保证你的项目能正常运行(即不打包的时候运行无误),我们在打包时经常遇到如下问题: springboot打包成jar包后找不 ...
- java打jar包与找不到依赖包详解
eclipse打jar包与找不到依赖包详解 eclipse打工具jar 1.项目右键-->export -->搜索java 2.选择JAR file 3.打包 eclipse打包可执行ja ...
- maven把项目打包成jar包后找不到velocity模板的bug
使用springmvc 开发时候要实现发送velcotiy模板邮件,在配置正常后,在本地测试正常后,使用maven打包成jar包后,报以下错误, Caused by: org.apache.veloc ...
- Linux中jar包启动和jar包后台运行
Linux 运行jar包命令如下: 方式一: java -jar shareniu.jar 特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出 那如何让窗口不锁定? ...
- spingboot jar 包启动遇到得坑
先摘抄一篇文章 pringboot打成jar包后,可直接用java -jar app.jar 启动,或者使用 nohup java -jar app.jar & 后台启动,也可以将 jar包链 ...
- Ops:jar包启动关闭脚本
简介 公司开发架构为java语言的rpc dubbo架构,将功能分解为各个模块,模块较多,发布到环境上的应用为编译后的jar包和配置文件,以及启动关闭jar包的shell脚本.之前经常会出现进程启动不 ...
- SpringBoot项目jar包启动脚本
startup.bat @echo off set path=X:\xxxxxxx\Java\JDK\jre\bin START "项目名" "%path%\java&q ...
- 关于springboot项目通过jar包启动之后无法读取项目根路径静态资源
在一次项目开发过程中,项目根路径下存放了一张图片,生成二维码的时候调用了该图片作为二维码的logo,在windows环境下二维码可以正常生成,但是部署到生产测试环境之后二维码生成报错,FileNotF ...
随机推荐
- 根据现有Bitmap生成相同图案指定大小的新Bitmap
通过一张现有的Bitmap,画出一张同样的但是大小使我们指定的Bitmap 需求:直接createBitmap的话不允许生成的bitmap的宽高大于原始的,因此需要特定方法来将一张Bitmap的大小进 ...
- ASP.NET Core 3.1 WebApi+JWT+Swagger+EntityFrameworkCore构建REST API
一.准备 使用vs2019新建ASP.NET Core Web应用程序,选用api模板: 安装相关的NuGet包: 二.编码 首先编写数据库模型: 用户表 User.cs: public class ...
- MyBatis使用模糊查询用户信息及log4j配置文件详解
1.1 根据用户名称模糊查询用户信息 根据用户名模糊查询用户信息,只需要我们更改映射文件中的sql语句.其他的内容跟上一篇的内容是一样的 1.2添加根据用户名称模糊查询用户信息的sql语句 实例中是查 ...
- phpstorm里面无法配置deployment?
我的preference里面找不到deployment是什么回事啊? 解决方案: 导致这个问题的原因是PHPStorm的plugins里面没有Remote Hosts Access这个插件,安装一下这 ...
- 分享我在前后端分离项目中Gitlab-CI的经验
长话短说,今天分享我为前后端分离项目搭建Gitlab CI/CD流程的一些额外经验. Before Gitlab-ci是Gitlab提供的CI/CD特性,结合Gitlab简单友好的配置界面,能愉悦的在 ...
- kali系统安装后乱码的解决
1.先添加kaili的源地址*(这里推荐了几个源,选一个就可以.打开/etc/apt/sources.list 删除里面自带的所有内容,把你复制的内容添加进去保存就ok了) #中科大 deb http ...
- ubuntu启动打开终端快捷键
ubuntu启动打开终端快捷键 CTRL+ALT+T
- cb14a_c++_顺序容器的操作7_赋值与交换(swap)_vector转list
cb14a_c++_顺序容器的操作7_赋值与交换(swap) vector数据赋值给list, slist.assign(svec.begin(), svec.end());//这样可以转 svec- ...
- DP:0-1背包问题
[问题描述] 0-1背包问题:有 N 个物品,物品 i 的重量为整数 wi >=0,价值为整数 vi >=0,背包所能承受的最大重量为整数 C.如果限定每种物品只能选择0个或1个,求可装的 ...
- Python的多继承问题-MRO和C3算法
大部分内容转载自C3 线性化算法与 MRO 理解Python中的多继承 Python 中的方法解析顺序(Method Resolution Order, MRO)定义了多继承存在时 Python 解释 ...