我按照this问题中的步骤使用Intellij导出了一个Java项目,并在%PROJECT_ROOT%/out/artifacts/ContactRetriever.jar
中获得了一个.jar文件。
但是,从命令行运行.jar文件时,
java -jar ContactRetriever.jar
给出以下输出:
Xalan-J command line Process class options:
-Common Options-
[-XSLTC (use XSLTC for transformation)]
[-IN inputXMLURL]
[-XSL XSLTransformationURL]
[-OUT outputFileName]
[-E (Do not expand entity refs)]
[-EDUMP {optional filename} (Do stackdump on error.)]
[-XML (Use XML formatter and add XML header.)]
[-TEXT (Use simple Text formatter.)]
[-HTML (Use HTML formatter.)]
[-PARAM name expression (Set a stylesheet parameter)]
[-MEDIA mediaType (use media attribute to find stylesheet associated with a d
ocument.)]
[-FLAVOR flavorName (Explicitly use s2s=SAX or d2d=DOM to do transform.)]
[-DIAG (Print overall milliseconds transform took.)]
[-URIRESOLVER full class name (URIResolver to be used to resolve URIs)]
[-ENTITYRESOLVER full class name (EntityResolver to be used to resolve entiti
es)]
(press <return> to continue)
我项目的清单文件(MANIFEST.MF
)包含:
Manifest-Version: 1.0
Main-Class: Main
Main
是主要类(入口点)。
项目的布局是:
项目结构工件是:
和模块:
为什么主要没有执行?
修改
主要代码是:
import com.gargoylesoftware.htmlunit.BrowserVersion;
import com.gargoylesoftware.htmlunit.NicelyResynchronizingAjaxController;
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.*;
import com.gargoylesoftware.htmlunit.util.Cookie;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.FirefoxProfile;
import org.openqa.selenium.firefox.internal.ProfilesIni;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.support.ui.ExpectedCondition;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import java.io.*;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.*;
import java.util.concurrent.ThreadLocalRandom;
import java.util.logging.Level;
public class Main extends Defaults{
private static WebClient webClient;
public static void main(String[] args) {
if(args.length == 0) {
printUsage();
return;
}
if(args[1] == null)
initAccounts("");
else
initAccounts(args[2]);
if(args[4] == null || args[6] == null)
printUsage();
else
getContacts(args[4], args[6], 4);
// initAccounts("");
// getContacts("C:\\Users\\user\\Downloads", "C:\\Users\\user\\Projects\\ContactRetriever", 4);
}
}
答案 0 :(得分:1)
就像错误说的那样,你有一个重复的依赖: org.seleniumhq.selenium /硒-java的 删除其中一个依赖项,您的应用必须正常运行。
然后添加maven的配置以创建清单文件:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>${java.specification.version}</source>
<target>${java.specification.version}</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.5</version>
<configuration>
<archive>
<manifest>
<mainClass>Main</mainClass>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.9</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib/</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
答案 1 :(得分:0)
我也遇到了这个问题,我发现Intellij会自动在META-INF/MANIFEST.IF
下生成src/main/java
,但是它应该在src/main/java/resources
下,只需将其移至正确的目录即可。它为我工作。