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 ...
随机推荐
- 用Java模拟游戏重力的实现(弹跳)
年末开了Java实训大作业 想了好几天决定选择马里奥小游戏 发现即使做出来但是跳跃功能是很“笨拙”的,和我们玩的游戏不一样,没有跳跃速度的快慢什么的,后来才知道这个叫做游戏里面重力的模拟. 组队做系统 ...
- How to Use tomcat on Linux
看是否有tomcat在运行 ps -ef |grep tomcat eg: -bash-4.1# ps -ef |grep tomcat root 1 0 0 14:26 ? 00:00:00 /bi ...
- Redis的内存和实现机制
1. Reids内存的划分 数据 内存统计在used_memory中 进程本身运行需要内存 Redis主进程本身运行需要的内存占用,代码.常量池等 缓冲内存,客户端缓冲区.复制积压缓冲区.AOF缓冲区 ...
- Lavarel 执行:php artisan migrate时报错
错误如下: 执行:php artisan migrate时报错: [PDOException]SQLSTATE[HY000] [2002] Connection refused 解决办法: 第一步:. ...
- PHP上传进度支持(Upload progress in sessions)
文件上传进度反馈, 这个需求在当前是越来越普遍, 比如大附件邮件. 在PHP5.4以前, 我们可以通过APC提供的功能来实现. 或者使用PECL扩展uploadprogress来实现. 从PHP的角度 ...
- logrotate 如何执行日志按照大小切分
说在最先的话,logrotate要设置按照文件大小来配置日志切分,需要通过三个东西. 1.配置logrotate 的配置文件 命名未任意文件,在启动的时候指定,例如/etc/weblog.conf 参 ...
- Django 构建模板form表单的两种方法
通常情况下,我们想构建一张表单时会在模板文件login.html中写入 <form action="/your-name/" method="post"& ...
- @bzoj - 3724@ PA2014Final Krolestwo
目录 @description@ @solution@ @accepted code@ @details@ @description@ 你有一个无向连通图,边的总数为偶数. 设图中有k个奇点(度数为奇 ...
- @codeforces - 674G@ Choosing Ads
目录 @description@ @solution@ @accepted code@ @details@ @description@ 给定长度为 n 的序列,m 次询问以及参数 p.共有两类询问: ...
- (三)Maven命令列表
mvn –version 显示版本信息 mvn clean 清理项目生产的临时文件,一般是模块下的target目录 mvn compile 编译源代码,一般编译模块下的src/main/java目录, ...