Java 作为独立应用程序执行Jar文件
我想将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
[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
文件夹,其中包含filesomejar.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
文件夹,其中包含filesomejar.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