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

启动命令是(需要cd到这个文件夹下面)

  1. 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

执行结果:

  1. 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
  2. [TestNG] Running:
  3. C:\Users\admin\Desktop\test\system_pro.xml
  4.  
  5. ===============================================
  6. Parallel tests
  7. Total tests run: 1, Failures: 1, Skips: 0
  8. ===============================================
  9.  
  10. Exception in thread "main" java.lang.NoClassDefFoundError: org/bson/types/ObjectId
  11. at java.lang.Class.getDeclaredMethods0(Native Method)
  12. at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
  13. at java.lang.Class.privateGetPublicMethods(Class.java:2902)
  14. at java.lang.Class.getMethods(Class.java:1615)
  15. at freemarker.ext.beans.ClassIntrospector.discoverAccessibleMethods(ClassIntrospector.java:464)
  16. at freemarker.ext.beans.ClassIntrospector.discoverAccessibleMethods(ClassIntrospector.java:457)
  17. at freemarker.ext.beans.ClassIntrospector.createClassIntrospectionData(ClassIntrospector.java:268)
  18. at freemarker.ext.beans.ClassIntrospector.get(ClassIntrospector.java:244)
  19. at freemarker.ext.beans.BeanModel.<init>(BeanModel.java:114)
  20. at freemarker.ext.beans.BeanModel.<init>(BeanModel.java:104)
  21. at freemarker.ext.beans.StringModel.<init>(StringModel.java:52)
  22. at freemarker.ext.beans.StringModel$1.create(StringModel.java:37)
  23. at freemarker.ext.beans.BeansModelCache.create(BeansModelCache.java:71)
  24. at freemarker.ext.util.ModelCache.getInstance(ModelCache.java:84)
  25. at freemarker.ext.beans.BeansWrapper.wrap(BeansWrapper.java:860)
  26. at freemarker.template.DefaultObjectWrapper.handleUnknownType(DefaultObjectWrapper.java:235)
  27. at freemarker.template.DefaultObjectWrapper.wrap(DefaultObjectWrapper.java:214)
  28. at freemarker.template.WrappingTemplateModel.wrap(WrappingTemplateModel.java:105)
  29. at freemarker.template.DefaultListAdapter.get(DefaultListAdapter.java:75)
  30. at freemarker.core.DynamicKeyName.dealWithNumericalKey(DynamicKeyName.java:104)
  31. at freemarker.core.DynamicKeyName._eval(DynamicKeyName.java:69)
  32. at freemarker.core.Expression.eval(Expression.java:78)
  33. at freemarker.core.Assignment.accept(Assignment.java:131)
  34. at freemarker.core.Environment.visit(Environment.java:324)
  35. at freemarker.core.MixedContent.accept(MixedContent.java:54)
  36. at freemarker.core.Environment.visitByHiddingParent(Environment.java:345)
  37. at freemarker.core.ConditionalBlock.accept(ConditionalBlock.java:48)
  38. at freemarker.core.Environment.visit(Environment.java:324)
  39. at freemarker.core.MixedContent.accept(MixedContent.java:54)
  40. at freemarker.core.Environment.visit(Environment.java:324)
  41. at freemarker.core.Environment.process(Environment.java:302)
  42. at freemarker.template.Template.process(Template.java:325)
  43. at com.aventstack.extentreports.reporter.ExtentHtmlReporter.flush(ExtentHtmlReporter.java:145)
  44. at java.util.ArrayList.forEach(ArrayList.java:1249)
  45. at com.aventstack.extentreports.Report.notifyReporters(Report.java:210)
  46. at com.aventstack.extentreports.Report.flush(Report.java:132)
  47. at com.aventstack.extentreports.ExtentReports.flush(ExtentReports.java:261)
  48. at com.genergy.util.ExtentTestNGIReporterListener.generateReport(ExtentTestNGIReporterListener.java:104)
  49. at org.testng.TestNG.generateReports(TestNG.java:1090)
  50. at org.testng.TestNG.run(TestNG.java:1049)
  51. at org.testng.TestNG.privateMain(TestNG.java:1339)
  52. at org.testng.TestNG.main(TestNG.java:1308)
  53. Caused by: java.lang.ClassNotFoundException: org.bson.types.ObjectId
  54. at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
  55. at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
  56. at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
  57. at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
  58. ... 42 more

不知道哪里出了问题。。。。

另一种解决方法:

maven使用打包插件将依赖的jar包一起打包,pom.xml添加插件:

  1. <build>
  2. <plugins>
  3. <plugin>
  4. <!-- 指定项目编译时的java版本和编码方式 -->
  5. <groupId>org.apache.maven.plugins</groupId>
  6. <artifactId>maven-compiler-plugin</artifactId>
  7. <version>3.7.0</version>
  8. <configuration>
  9. <target>1.8</target>
  10. <source>1.8</source>
  11. <encoding>UTF-8</encoding>
  12. </configuration>
  13. </plugin>
  14. <plugin>
  15. <groupId>org.apache.maven.plugins</groupId>
  16. <artifactId>maven-assembly-plugin</artifactId>
  17. <version>3.1.0</version>
  18. <configuration>
  19. <archive>
  20. <manifest>
  21. <mainClass>com.genergy.Excel2Test</mainClass> <!-- 指定入口类路径 -->
  22. </manifest>
  23. </archive>
  24. <descriptorRefs>
  25. <descriptorRef>jar-with-dependencies</descriptorRef> <!-- jar包后缀,生成的jar包形式为:project-1.0-SNAPSHOT-jar-with-dependencies.jar -->
  26. </descriptorRefs>
  27. </configuration>
  28. <!-- 添加此项后,可直接使用mvn package | mvn install -->
  29. <!-- 不添加此项,需直接使用mvn package assembly:single -->
  30. <executions>
  31. <execution>
  32. <id>make-assembly</id>
  33. <phase>package</phase>
  34. <goals>
  35. <goal>single</goal>
  36. </goals>
  37. </execution>
  38. </executions>
  39. </plugin>
  40. </plugins>
  41. </build>

通过mvn package 打好包之后,将需要执行

这里需要将测试的xml拷贝到和jar包一个路径

然后执行

  1. java -classpath jar包名 org.testng.TestNG xml
  1. 如:
    java -classpath genergy-api-test-1.0-SNAPSHOT-jar-with-dependencies.jar org.testng.TestNG system_pro.xml

最后生成测试报告在:

testNG jar包启动找不到org.testng.TestNG的更多相关文章

  1. Linux上java程序的jar包启动通用脚本(稳定用过)

    Linux上java程序的jar包启动通用脚本如下: #! /bin/sh export LANG="zh_CN.GBK" SERVICE_NAME=` .sh` SCRIPT_N ...

  2. springboot打包成jar包后找不到xml,找不到主类的解决方法

    springboot打包成jar包后找不到xml,找不到主类的解决方法 请首先保证你的项目能正常运行(即不打包的时候运行无误),我们在打包时经常遇到如下问题: springboot打包成jar包后找不 ...

  3. java打jar包与找不到依赖包详解

    eclipse打jar包与找不到依赖包详解 eclipse打工具jar 1.项目右键-->export -->搜索java 2.选择JAR file 3.打包 eclipse打包可执行ja ...

  4. maven把项目打包成jar包后找不到velocity模板的bug

    使用springmvc 开发时候要实现发送velcotiy模板邮件,在配置正常后,在本地测试正常后,使用maven打包成jar包后,报以下错误, Caused by: org.apache.veloc ...

  5. Linux中jar包启动和jar包后台运行

    Linux 运行jar包命令如下: 方式一: java -jar shareniu.jar 特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出 那如何让窗口不锁定? ...

  6. spingboot jar 包启动遇到得坑

    先摘抄一篇文章 pringboot打成jar包后,可直接用java -jar app.jar 启动,或者使用 nohup java -jar app.jar & 后台启动,也可以将 jar包链 ...

  7. Ops:jar包启动关闭脚本

    简介 公司开发架构为java语言的rpc dubbo架构,将功能分解为各个模块,模块较多,发布到环境上的应用为编译后的jar包和配置文件,以及启动关闭jar包的shell脚本.之前经常会出现进程启动不 ...

  8. SpringBoot项目jar包启动脚本

    startup.bat @echo off set path=X:\xxxxxxx\Java\JDK\jre\bin START "项目名" "%path%\java&q ...

  9. 关于springboot项目通过jar包启动之后无法读取项目根路径静态资源

    在一次项目开发过程中,项目根路径下存放了一张图片,生成二维码的时候调用了该图片作为二维码的logo,在windows环境下二维码可以正常生成,但是部署到生产测试环境之后二维码生成报错,FileNotF ...

随机推荐

  1. 用Java模拟游戏重力的实现(弹跳)

    年末开了Java实训大作业 想了好几天决定选择马里奥小游戏 发现即使做出来但是跳跃功能是很“笨拙”的,和我们玩的游戏不一样,没有跳跃速度的快慢什么的,后来才知道这个叫做游戏里面重力的模拟. 组队做系统 ...

  2. 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 ...

  3. Redis的内存和实现机制

    1. Reids内存的划分 数据 内存统计在used_memory中 进程本身运行需要内存 Redis主进程本身运行需要的内存占用,代码.常量池等 缓冲内存,客户端缓冲区.复制积压缓冲区.AOF缓冲区 ...

  4. Lavarel 执行:php artisan migrate时报错

    错误如下: 执行:php artisan migrate时报错: [PDOException]SQLSTATE[HY000] [2002] Connection refused 解决办法: 第一步:. ...

  5. PHP上传进度支持(Upload progress in sessions)

    文件上传进度反馈, 这个需求在当前是越来越普遍, 比如大附件邮件. 在PHP5.4以前, 我们可以通过APC提供的功能来实现. 或者使用PECL扩展uploadprogress来实现. 从PHP的角度 ...

  6. logrotate 如何执行日志按照大小切分

    说在最先的话,logrotate要设置按照文件大小来配置日志切分,需要通过三个东西. 1.配置logrotate 的配置文件 命名未任意文件,在启动的时候指定,例如/etc/weblog.conf 参 ...

  7. Django 构建模板form表单的两种方法

    通常情况下,我们想构建一张表单时会在模板文件login.html中写入 <form action="/your-name/" method="post"& ...

  8. @bzoj - 3724@ PA2014Final Krolestwo

    目录 @description@ @solution@ @accepted code@ @details@ @description@ 你有一个无向连通图,边的总数为偶数. 设图中有k个奇点(度数为奇 ...

  9. @codeforces - 674G@ Choosing Ads

    目录 @description@ @solution@ @accepted code@ @details@ @description@ 给定长度为 n 的序列,m 次询问以及参数 p.共有两类询问: ...

  10. (三)Maven命令列表

    mvn –version 显示版本信息 mvn clean 清理项目生产的临时文件,一般是模块下的target目录 mvn compile 编译源代码,一般编译模块下的src/main/java目录, ...