2016-02-18 24 views
0

我已出口使用的是IntelliJ按照this問題的步驟的Java項目,並在%PROJECT_ROOT%/out/artifacts/ContactRetriever.jar有一個.jar文件。 但是,運行在命令行.jar文件,當導出和運行的IntelliJ的.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是主要類(入口點)。

該項目的佈局是:

layout

項目結構構件是:

artifacts

和模塊:

modules

爲什麼主要執行不?

編輯:

在主要的代碼是:

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

究竟在何處是你的主類?通常,您必須提供清單中類的完整路徑,例如org.yourapp.Main –

+0

Main.class。它不是已經包含在.jar中嗎? – Sebi

+0

我的意思是說,你有一個包內的主類嗎,或者是在'src/Main'下的根目錄下? –

回答

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> 
+0

它仍然無法找到主類(+ 1-btw) – Sebi