我一直在谷歌搜索几天,试图弄清楚如何做到这一点,如果有人在我非常感谢您的帮助之前已经做到了这一点。
我有一个在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文件的步骤:
html" target="_blank">笔记:
文件文件=新文件(“ 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 Structu
我正在使用Firefox47.0和Selenium2.53。最近,它们是Selenium和Firefox之间的一个bug,使代码无法工作。解决方案之一是使用Marionnette驱动程序。 编辑1:我尝试了以下代码: 而且它正在工作,似乎问题来自RemoteWebDriver和gecko驱动程序,你们有消息吗?
问题内容: 大家好,菜鸟Java问题。 我有一个Java项目,并且想在可执行jar中包含一个文本文件。现在,该文本文件位于默认程序包中。 InputFlatFile currentFile =新的InputFlatFile(“ src / theFile.txt”); 正如您使用src所看到的那样,我使用该行抓取文件。但是,这不适用于可执行jar。 有人可以让我知道如何将文件保存在可执行jar中,
我试图用cxFreeze创建可执行文件,但它向我发送了一个错误,即找不到名为codec的模块。有人能帮我用cxFreeze或任何其他工具创建可执行文件吗?
问题内容: 我有一个包含两个简单的Java swing文件的程序。 如何为程序制作可执行的jar文件? 问题答案: jar文件只是包含Java文件集合的文件。为了使jar文件可执行,你需要指定 Class在jar文件中的位置。示例代码如下。 编译你的类。要制作一个jar,你还需要创建一个清单文件()。例如, 将编译后的输出类文件(JarExample.class,JarExample $ 1.cl