Java 使用maven创建的.jar文件不会打开
我只是遇到了一个无法摆脱的问题,就像在标题中一样,当我使用netbeans从maven项目构建.jar时,它不会在IDE之外打开。 在IDE中使用run按钮可以完美地运行应用程序,不会出现问题,但builded.jar不会打开。jar来自其他项目,工作正常,这是我第一次用maven构建东西,所以我认为问题就在那里 这是我的pom文件,希望问题在这里:Java 使用maven创建的.jar文件不会打开,java,xml,maven,jar,Java,Xml,Maven,Jar,我只是遇到了一个无法摆脱的问题,就像在标题中一样,当我使用netbeans从maven项目构建.jar时,它不会在IDE之外打开。 在IDE中使用run按钮可以完美地运行应用程序,不会出现问题,但builded.jar不会打开。jar来自其他项目,工作正常,这是我第一次用maven构建东西,所以我认为问题就在那里 这是我的pom文件,希望问题在这里: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://ma
<?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.bbzoftware</groupId>
<artifactId>HDiSED</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<properties>
<springframework.version>4.0.6.RELEASE</springframework.version>
<hibernate.version>4.3.5.Final</hibernate.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>${hibernate.version}</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>${hibernate.version}</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.31</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.9</version>
</dependency>
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.2</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${springframework.version}</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.7.2</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${springframework.version}</version>
</dependency>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version>7.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.3</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<manifestEntries>
<Main-Class>com.bbzoftware.hdised.controller.Main</Main-Class>
<Build-Number>123</Build-Number>
</manifestEntries>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
4.0.0
com.bbzoftware
HDiSED
1.0-快照
罐子
4.0.6.1发布
4.3.5.最终版本
UTF-8
1.7
1.7
org.hibernate
休眠实体管理器
${hibernate.version}
org.hibernate
冬眠核心
${hibernate.version}
mysql
mysql连接器java
5.1.31
通用编解码器
通用编解码器
1.9
公共dbcp
公共dbcp
1.4
com.itextpdf
itextpdf
5.5.2
org.springframework
spring上下文
${springframework.version}
org.springframework
德克萨斯州春季
${springframework.version}
org.aspectj
aspectjweaver
1.7.2
org.springframework
春季甲虫
${springframework.version}
爪哇
javaeewebapi
7
假如
org.apache.maven.plugins
maven阴影插件
2.3
包裹
阴凉处
com.bbzoftware.hdised.controller.Main
123
找到您的jar文件,并尝试使用例如7zip打开它。
Jar文件只是一个存档文件。在这里打开是什么意思?执行?或者使用zip实用程序打开?通过双击或控制台执行。您可能需要使用类似maven Dependency plugin的插件将maven依赖项复制到lib目录,或者将它们打包到jar中。您还需要为manfiest中的每个依赖项设置类路径条目。您可以通过使用java-jar-MyJarsName.jar从shell(cmd或终端)启动jar来检查依赖关系是否存在问题。如果您提供了堆栈跟踪,则更容易判断问题所在。只需使用cmd中的>>或终端中的|将输出重定向到某个文本文件。更可能的是,maven没有将
MANIFEST.MF
放在jar的META-INF
目录中。遗憾的是,默认插件生成的是一个库jar,而不是一个可执行的jar——而且我对maven还不够精通,无法为您提供解决方案:-(您需要配置pom以生成可执行的jar。检查问题,它会尝试完成相同的操作。我需要执行它,而不是检查内部内容。在7zip中打开的项目看起来很正常,只是不执行而已。)。