我一直在谷歌搜索几天,试图弄清楚如何做到这一点,如果有人在我非常感谢您帮助之前已经做到了这一点。
我有一个在IntelliJ中创建的自动化测试项目,该项目可以使用户与Web应用程序进行交互的过程自动化。
我想将自动测试(使用Selenium和TestNG在Java中创建)放入可执行的jar文件中,其他人可以通过双击jar文件来运行它。
每当我尝试通过导航到Project Structure-> Artifact-> +->
Jar->从具有依赖性的模块中创建一个jar文件时,最终都会创建一个声明它的jar,
"Could not find or load the main class <package.MainClass> "
当我尝试使用以下命令运行它时:
java -jar MyProject.jar <Manifest Path>
知道为什么我会不断收到此错误,或者有办法成功完成此操作吗?
另外,这是我的pom.xml:
<groupId>TestAutomation</groupId>
<artifactId>TestAutomation</artifactId>
<version>1.0-SNAPSHOT</version>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>com.test.automation.Executable</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-server</artifactId>
<version>2.39.0</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>2.40.0</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.1.1</version>
<scope>test</scope>
</dependency>
</dependencies>
我终于找到了碰巧遇到这个问题的其他人的方法,这就是我如何创建jar文件并成功运行它的方法。
我必须将pom.xml文件更改为以下内容:
<groupId>TestAutomation</groupId>
<artifactId>TestAutomation</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<url>http://maven.apache.org</url>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>com.test.automation.Executable</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>2.40.0</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.1.1</version>
<scope>test</scope>
</dependency>
</dependencies>
然后,我不得不调整我的主要方法,以不使用任何与TestNG相关的调用。例如,我不能将以下内容用于我的主要方法:
TestListenerAdapter tla = new TestListenerAdapter();
TestNG testng = new TestNG();
testng.setTestClasses(new Class[] {WordProfFonts2Set0.class});
testng.addListener(tla);
testng.run();
最后,以下是创建适当的jar文件的步骤:
笔记:
文件文件=新文件(“ src \ test \ resources \ binaries \ IEDriverServer.exe”);
不是这个:
File file = new File
("C:\\Users\\<Username>\\<Proj Name>\\src\\test\\java\\src\\
test\\resources\\binaries\\IEDriverServer.exe");
然后在将jar保存到计算机的同一文件夹中,创建具有驱动程序的相同目录:
src
TestAutomation.jar
2。如果使用IE,请确保为所有区域或全部区域都未设置保护模式(在IE中,转到“ Internet选项…”>“安全性”(选项卡)>“启用保护模式”复选框)
问题内容: 我一直在谷歌搜索几天,试图弄清楚如何做到这一点,如果有人在我非常感谢您的帮助之前已经做到了这一点。 我有一个在IntelliJ中创建的自动化测试项目,该项目可以使与Web应用程序交互的用户自动化。 我想将自动测试(使用Selenium和TestNG在Java中创建)放入可执行的jar文件中,其他人可以通过双击jar文件来运行它。 每当我尝试通过导航到Project Structure-
问题内容: 我有一个包含两个简单的Java swing文件的程序。 如何为程序制作可执行的jar文件? 问题答案: jar文件只是包含Java文件集合的文件。为了使jar文件可执行,你需要指定 Class在jar文件中的位置。示例代码如下。 编译你的类。要制作一个jar,你还需要创建一个清单文件()。例如, 将编译后的输出类文件(JarExample.class,JarExample $ 1.cl
我正在使用JPackage(OpenJDK 15.0.1)为Windows制作一个可移植的可执行文件。我尝试了下面的命令,但我双击了生成的exe文件,显示了安装程序窗口。它似乎不是可移植的可执行文件,而只是安装程序。 有什么办法可以用JPackage制作一个不用安装就可以使用的可执行文件?
我正在使用Firefox47.0和Selenium2.53。最近,它们是Selenium和Firefox之间的一个bug,使代码无法工作。解决方案之一是使用Marionnette驱动程序。 编辑1:我尝试了以下代码: 而且它正在工作,似乎问题来自RemoteWebDriver和gecko驱动程序,你们有消息吗?
问题内容: 我有一个Maven项目,其中我正在尝试执行脚本(用R编写)。我也将此脚本文件放在源代码目录中。我发现此脚本根本没有执行。但是,当我将此脚本移到jar文件之外时,它会执行!谁能告诉我原因,并给我一些解决方案以将脚本放入jar中,同时确保其执行? 非常感谢 ! 问题答案: 我将执行以下操作: 使用ClassLoader.getResourceAsStream()获取文件的InputStre