linux调用jar包中非main方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux调用jar包中非main方法相关的知识,希望对你有一定的参考价值。

参考技术A 网络的问题。微信小程序pdf变成unknown多数是网络连接异常导致。
1、首先打开电脑检查网络。
2、其次打开微信进行测试网络连接是否异常。
3、最后点击小程序重新修改后缀即可。

TestNG独立运行的几种方法.md

通过main函数调用testng.xml文件,然后打成可执行jar包执行

1 假设我们已经写好了testng.xml,现在我们需要写一个主类和main函数用来调用testng.xml

package ngtest;
import java.util.List;
import org.testng.TestNG;
import com.google.common.collect.Lists;



public class TestPerson 
 public static void main(String[] args) 
  TestNG tng = new TestNG();
  List<String> suites = Lists.newArrayList();
  //添加要执行的testng.xml文件
  suites.add("testng.xml");
  tng.setTestSuites(suites);
  tng.run();
 

2 把项目打成可执行jar包

利用Eclipse自带的打包工具,

  1. 在项目名上点击右键,选择export
    技术图片
  2. 在弹出的菜单中选择java->Runable JAR file,点击next
    技术图片
  3. 在当前页做如下操作:Launch configuration 中选择主类,Export destination 中设置导出后的路径和jar包名,在Library handling 选择第三项(可以选择任意一一项,第三项是把依赖包放到一个子文件夹中,当运行出现找不到类时,我们可以及时向该文件夹中添加依赖包)
    技术图片
  4. 在后面弹出的窗口中一路点击yes 或者 ok,完成后目标就会出现在第三步Export destination设置的位置上。

    3 运行jar包

    打成的jar包中有程序运行需要的.class文件,但是缺少了testng配置文件,所以需要把testng配置文件放到jar包的同级目录上,然后双击jar包(或者进入cmd命令行,输入java -jar jar包名)即可执行jar包,执行完后就会在同级目录上生成TestNG运行结果文件。

在命令行中直接运行TestNG配置文件

命令行运行TestNG的基本语法java org.testng.TestNG testng.xml
在命令行中运行一个java程序都需要设置classpath环境变量,用来说明要执行的.class文件在哪里(简单的不需要设置,是因为那个.class文件没有跨包依赖,而我们正好可以找到他)。我们这里需要设置两个环境变量,第一部分的环境变量指向该程序依赖的jar包的位置,第二部分指向要运行的.class文件的位置
这需要如下操作

  1. 在classpath环境变量中添加TestNG依赖包的路径,添加环境变量的方法请自行百度,下图是使用Eclipse 的TestNG插件后TestNG依赖包的位置。可以看到图中有四个包,这四个都需要添加到classpath环境变量中。
    技术图片
  2. 在classpath中添加本程序生成的class文件的根目录,普通项目一般在项目名下的bin文件夹中,maven项目在target文件夹中。
  3. 在命令行中切换到testng.xml所在的目录
  4. 执行java org.testng.TestNG testng.xml

如果不添加classpath环境变量,也可以在运行时指定classpath的值,比如
D:\\workspace\\tester>java -classpath "%classpath%;D:\\workspace\\tester\\target\\test-classes" org.testng.TestNG testng.xml
上面-classpath "%classpath%;D:\\workspace\\tester\\target\\test-classes"的含义是设置当前运行环境的classpath,classpath包含两部分,一部分是%classpath%表示引用当前设置的系统环境变量中classpath的值(在系统classpath中我设置了testng依赖包的位置,如果没有设置系统环境变量classpath,这里需要写上上面四个包的全路径,中间用分号分割),第二个值是D:\\workspace\\tester\\target\\test-classes表示我的项目编译后生成的.class文件放在这里。

以上是关于linux调用jar包中非main方法的主要内容,如果未能解决你的问题,请参考以下文章

Java工程打包jar,里面有一个main函数,怎么用Tomcat执行main函数呢?这个main函数的类继承Runnable

TestNG独立运行的几种方法.md

怎样将Go的main包拆分为多个文件

解决springboot项目打jar包运行时找不到main方法方案

myeclipse maven 打成jar包 对要执行的main方法暴露出去,通过java -jar 命令后跟打包好的jar文件回车就可以执行暴露的main线程方法

java项目打包成可运行的jar,main方法带参数