代码之家  ›  专栏  ›  技术社区  ›  Atihska

如何从命令行运行从Intellij创建的javajar

  •  0
  • Atihska  · 技术社区  · 6 年前

    this 所以张贴和遵循的步骤,但我仍然无法运行它。

    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,它包含一些项目所需的库。

    enter image description here

    <?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>
    

    2 回复  |  直到 6 年前
        1
  •  0
  •   YK S    6 年前

    我用java创建了一个测试项目,构建并执行了jar。

    最初项目的结构如下所示。这个 out 目录只包含生产目录。 Initial

    现在单击文件->项目结构->人工产品。点击 + 在左上角的左侧导航窗格旁签名。

    enter image description here

    + 签名并选择Jar->从具有依赖项的模块。。。。将出现一个对话框,如下所示:

    enter image description here

    现在选择 Main Class 然后选择 radio button extract to the target JAR 然后单击 OK . 您将看到以下内容 enter image description here :

    检查 Include in project build checkbox 然后单击 Apply->Ok .

    enter image description here

    Build->Build Project . 现在你可以看到了 out directory artifacts sub-directory 会有相应的罐子

    enter image description here

    现在在伦敦的终点站 intelliJ 进入jar所在的目录并执行命令 java -jar JAR_NAME.jar 你可以看到主函数被执行了。

        2
  •  0
  •   Atihska    6 年前

    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
    

    $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构建:从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