Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 作为独立应用程序执行Jar文件_Java_Maven_Javafx_Maven 3 - Fatal编程技术网

Java 作为独立应用程序执行Jar文件

Java 作为独立应用程序执行Jar文件,java,maven,javafx,maven-3,Java,Maven,Javafx,Maven 3,我想将jar文件作为独立应用程序执行。当我运行以下命令时,我会收到此错误消息: [rcbandit@Laptop target]$ /opt/jdk1.8.0/bin/java -jar DX57DC-1.0.jar no main manifest attribute, in DX57DC-1.0.jar [rcbandit@Laptop target]$ 这是POM配置: <?xml version="1.0" encoding="UTF-8"?> <project x

我想将jar文件作为独立应用程序执行。当我运行以下命令时,我会收到此错误消息:

[rcbandit@Laptop target]$ /opt/jdk1.8.0/bin/java -jar DX57DC-1.0.jar
no main manifest attribute, in DX57DC-1.0.jar
[rcbandit@Laptop target]$ 
这是POM配置:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.dx57dc</groupId>
    <artifactId>DX57DC</artifactId>
    <version>1.0</version>
    <packaging>jar</packaging>

    <name>DX57DC</name>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <mainClass></mainClass>
    </properties>

    <organization>
        <name>Corporation Name</name>
    </organization>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>2.8</version>
                <executions>
                    <execution>
                        <id>unpack-dependencies</id>
                        <phase>package</phase>
                        <goals>
                            <goal>unpack-dependencies</goal>
                        </goals>
                        <configuration>
                            <excludeScope>system</excludeScope>
                            <excludeGroupIds>junit,org.mockito,org.hamcrest</excludeGroupIds>
                            <outputDirectory>${project.build.directory}/classes</outputDirectory>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>com.zenjava</groupId>
                <artifactId>javafx-maven-plugin</artifactId>
                <version>2.0</version>
                <configuration>
                    <mainClass>com.dx57dc.main.DX57DC</mainClass>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

4.0.0
com.dx57dc
DX57DC
1
罐子
DX57DC
UTF-8
公司名称
org.apache.maven.plugins
maven依赖插件
2.8
解包依赖项
包裹
解包依赖项
系统
junit,org.mockito,org.hamcrest
${project.build.directory}/classes
com.zenjava
javafxmaven插件
2
com.dx57dc.main.dx57dc
org.apache.maven.plugins
maven编译器插件
3.1
1.8
1.8

我想我错过了一个maven插件。你能告诉我怎么解决这个问题吗

您的jar不包含指定可执行main()函数的清单,因此java不知道要执行/启动哪个类

使用maven时,请看一下汇编插件。这使您能够使用正确的清单创建jar

或者简单地用以下命令启动您的程序:
java-cp DX57DC-1.0.jar“您的主类在这里”

问候,


Mike

您的jar不包含指定可执行main()函数的清单,因此java不知道要执行/启动哪个类

使用maven时,请看一下汇编插件。这使您能够使用正确的清单创建jar

或者简单地用以下命令启动您的程序:
java-cp DX57DC-1.0.jar“您的主类在这里”

问候,


Mike

尝试在插件中添加类似的内容:

    <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>2.3</version>
            <executions>
                <execution>
                    <goals>
                        <goal>attached</goal>
                    </goals>
                    <phase>package</phase>
                    <configuration>
                        <descriptorRefs>
                            <descriptorRef>jar-with-dependencies</descriptorRef>
                        </descriptorRefs>
                        <archive>
                            <manifest>
                                <mainClass>com.package.to.my.Main</mainClass>
                            </manifest>
                        </archive>
                    </configuration>
                </execution>
            </executions>
        </plugin>

org.apache.maven.plugins
maven汇编插件
2.3
附属的
包裹
带有依赖项的jar
com.package.to.my.Main

尝试向插件添加类似的内容:

    <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>2.3</version>
            <executions>
                <execution>
                    <goals>
                        <goal>attached</goal>
                    </goals>
                    <phase>package</phase>
                    <configuration>
                        <descriptorRefs>
                            <descriptorRef>jar-with-dependencies</descriptorRef>
                        </descriptorRefs>
                        <archive>
                            <manifest>
                                <mainClass>com.package.to.my.Main</mainClass>
                            </manifest>
                        </archive>
                    </configuration>
                </execution>
            </executions>
        </plugin>

org.apache.maven.plugins
maven汇编插件
2.3
附属的
包裹
带有依赖项的jar
com.package.to.my.Main

为了创建JAR文件,它需要有一个包含
主类
类路径
项的清单文件:

       <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>2.4</version>
            <configuration>
                <archive>
                    <manifest>
                        <addClasspath>true</addClasspath>
                        <classpathPrefix>lib/</classpathPrefix>
                        <mainClass>my.package.App</mainClass>               
                    </manifest>           
                </archive>
                <executions>
                    <execution>
                        <id>default-package</id>
                        <phase>package</phase>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </configuration>
        </plugin>
类路径
指出,在jar文件所在的目录中存在一个
lib
文件夹,其中包含file
somejar.jar

Main类
声明文件
App.Class
存在于包
my.package
中,其
方法将运行

更新 如果
lib
文件夹不存在,则在加载第一个依赖类时执行将失败。要避免这种情况,您可以插入:


org.apache.maven.plugins
maven阴影插件
2.1
包裹
阴凉处
my.package.App

由于所有依赖项都打包在一起,因此不再需要
类路径
条目。

为了创建JAR文件,需要有一个包含
主类
类路径
条目的清单文件:

       <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>2.4</version>
            <configuration>
                <archive>
                    <manifest>
                        <addClasspath>true</addClasspath>
                        <classpathPrefix>lib/</classpathPrefix>
                        <mainClass>my.package.App</mainClass>               
                    </manifest>           
                </archive>
                <executions>
                    <execution>
                        <id>default-package</id>
                        <phase>package</phase>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </configuration>
        </plugin>
类路径
指出,在jar文件所在的目录中存在一个
lib
文件夹,其中包含file
somejar.jar

Main类
声明文件
App.Class
存在于包
my.package
中,其
方法将运行

更新 如果
lib
文件夹不存在,则在加载第一个依赖类时执行将失败。要避免这种情况,您可以插入:


org.apache.maven.plugins
maven阴影插件
2.1
包裹
阴凉处
my.package.App

由于所有依赖项都打包在一起,因此不再需要类路径条目。

按如下方式创建jar:

  • 打开命令提示符或终端,然后
        -c  create new archive
        -f  specify archive file name
        -e  specify application entry point for stand-alone application
            bundled into an executable jar file
        -v  generate verbose output on standard output