簡體   English   中英

如何從命令行運行從Intellij創建的Java JAR

[英]How can I run Java JAR created from Intellij from command line

我閱讀了這篇 SO帖子並按照步驟進行操作,但仍然無法運行它。

我嘗試如下運行

Directory_where_jar_is_located $ java -jar Main.java
Error: Unable to access jarfile IcerbergRun
Directory_where_jar_is_located$ java -jar ProjectName.jar 
Error: Could not find or load main class IcebergRun

此后需要做什么? 這些依賴是什么? 另外,我共享我的pom.xml,其中包含一些項目所需的庫。

在此處輸入圖片說明

<?xml version="1.0" encoding="UTF-8"?>

http://maven.apache.org/xsd/maven-4.0.0.xsd“> 4.0.0

<groupId>SparkIceberg</groupId>
<artifactId>SparkTut</artifactId>
<version>1.0-SNAPSHOT</version>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
                <!--<logger name="org.apache.catalina.core" level="OFF" />-->
            </configuration>
        </plugin>
    </plugins>
</build>
<repositories>
    <repository>
        <id>jitpack.io</id>
        <url>https://jitpack.io</url>
    </repository>
</repositories>


<dependencies>
    <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-core_2.11</artifactId>
        <version>2.3.2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-sql_2.11</artifactId>
        <version>2.3.2</version>
    </dependency>
    <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-java-sdk</artifactId>
        <version>1.11.417</version>
    </dependency>
    <dependency>
        <groupId>com.github.Netflix.iceberg</groupId>
        <artifactId>iceberg-spark</artifactId>
        <version>0.3.0</version>
    </dependency>
    <dependency>
        <groupId>com.github.Netflix.iceberg</groupId>
        <artifactId>iceberg-data</artifactId>
        <version>0.3.0</version>
    </dependency>
    <dependency>
        <groupId>com.github.Netflix.iceberg</groupId>
        <artifactId>iceberg-common</artifactId>
        <version>0.3.0</version>
    </dependency>
    <dependency>
        <groupId>com.github.Netflix.iceberg</groupId>
        <artifactId>iceberg-api</artifactId>
        <version>0.3.0</version>
    </dependency>
    <dependency>
        <groupId>com.github.Netflix.iceberg</groupId>
        <artifactId>iceberg-core</artifactId>
        <version>0.3.0</version>
    </dependency>
    <dependency>
        <groupId>com.github.Netflix.iceberg</groupId>
        <artifactId>iceberg-parquet</artifactId>
        <version>0.3.0</version>
    </dependency>
    <dependency>
        <groupId>com.github.Netflix.iceberg</groupId>
        <artifactId>iceberg-orc</artifactId>
        <version>0.3.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-aws</artifactId>
        <version>3.1.1</version>
    </dependency>
    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-hdfs</artifactId>
        <version>3.1.1</version>
    </dependency>
    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-common</artifactId>
        <version>3.1.1</version>
    </dependency>
    <dependency>
        <groupId>org.apache.parquet</groupId>
        <artifactId>parquet-common</artifactId>
        <version>1.10.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.parquet</groupId>
        <artifactId>parquet-column</artifactId>
        <version>1.10.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.parquet</groupId>
        <artifactId>parquet-hadoop</artifactId>
        <version>1.10.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.avro</groupId>
        <artifactId>avro</artifactId>
        <version>1.8.2</version>
    </dependency>
</dependencies>

我用Java創建了一個Test項目,並構建並執行了jar。

最初,項目的結構如下圖所示。 out目錄僅包含生產目錄。 初始

現在單擊文件->項目結構->工件。 單擊左上角左導航窗格旁邊的+號。

在此處輸入圖片說明

現在單擊+號,然后從具有依賴項的模塊中選擇Jar-> from....。將出現一個對話框,如下所示:

在此處輸入圖片說明

現在選擇Main Class然后選擇要解extract to the target JAR前面的radio button ,然后單擊OK 您將看到以下內容 在此處輸入圖片說明

選中“ Include in project build checkbox ,然后單擊“應用”- Apply->Ok

在此處輸入圖片說明

點擊Build->Build Project 現在您可以看到out directory具有artifacts sub-directory將具有相應的jar

在此處輸入圖片說明

現在,在intelliJ的終端上,進入存在jar的目錄,並執行命令java -jar JAR_NAME.jar ,您將看到main函數已執行。

所以我不確定為什么我的IntelliJ生產的JAR無法執行並且Could not load main class所以我在命令行上嘗試了整個Java項目並生成了對我有用的JAR。

步驟如下:

1.在ec2上安裝maven https://gist.github.com/sebsto/19b99f1fa1f32cae5d00

$sudo wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo
$sudo sed -i s/\$releasever/6/g /etc/yum.repos.d/epel-apache-maven.repo
$sudo yum install -y apache-maven
$mvn —version

2.還要安裝以下內容

$sudo yum install java-1.8.0-openjdk-devel
$yum install zip

3.執行此操作以創建Maven項目 http://www.mkyong.com/maven/how-to-create-a-java-project-with-maven/

$mvn archetype:generate -DgroupId=com.package.name -DartifactId=java-project -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

4.編輯代碼文件和pom.xml。 您可以在IntelliJ中打開項目並進行編輯。

5. MAVEN BUILD:從Java項目的根目錄運行

java-project$mvn package or mvn clean package

6.刪除構建后創建的這些文件

https://gist.github.com/hkhamm/88923412992d284580ea

java-project$zip -d target/iceberg-project-1.0-SNAPSHOT.jar META-INF/*.RSA META-INF/*.DSA META-INF/*.SF

7.運行JAR

java-project$java -cp target/java-project-1.0-SNAPSHOT.jar com.project.name.App

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM