Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.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 从Maven崩溃中释放JAR_Java_Eclipse_Maven_Jar - Fatal编程技术网

Java 从Maven崩溃中释放JAR

Java 从Maven崩溃中释放JAR,java,eclipse,maven,jar,Java,Eclipse,Maven,Jar,我正试图从我在EclipseIDE中的项目中创建一个jar文件。我试图在我的pom.xml上运行mvn包,如下所示: <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/x

我正试图从我在EclipseIDE中的项目中创建一个
jar
文件。我试图在我的
pom.xml
上运行
mvn包
,如下所示:

<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.javacodegeeks.snippets.enterprise</groupId>
    <artifactId>springexample</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>



    <build>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3.2</version>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                </configuration>
            </plugin>
            <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-eclipse-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <configuration>
                    <archive>
                        <manifest>
                        <addClasspath>true</addClasspath>
                        <mainClass>com.javacodegeeks.snippets.enterprise.App</mainClass>
                        </manifest>
                    </archive>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
            </plugin>
            </plugins>
            </build>        
            <dependencies>
                <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-core</artifactId>
                <version> 3.2.4.RELEASE</version>
                </dependency>
                <dependency>
                    <groupId>com.rapplogic</groupId>
                    <artifactId>xbee-api</artifactId>
                    <version> 0.9</version>
                </dependency>
                <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-context</artifactId>
                    <version>3.2.4.RELEASE</version>
                </dependency>
                <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-orm</artifactId>
                    <version>3.2.4.RELEASE</version>
                </dependency>
                <dependency>
                    <groupId>commons-dbcp</groupId>
            <artifactId>commons-dbcp</artifactId>
            <version>1.2.2</version>
        </dependency>
        <dependency>
            <groupId>javax.persistence</groupId>
            <artifactId>persistence-api</artifactId>
            <version>1.0</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.6</version>
        </dependency>
        <dependency>
            <groupId>jfreechart</groupId>
            <artifactId>jfreechart</artifactId>
            <version>1.0.0</version>
        </dependency>
        <dependency>
            <groupId>jcommon</groupId>
            <artifactId>jcommon</artifactId>
            <version>0.9.5</version>
        </dependency>
        <dependency>
            <groupId>org.graphstream</groupId>
            <artifactId>gs-core</artifactId>
            <version>1.2</version>
        </dependency>
        <dependency>
            <groupId>org.graphstream</groupId>
            <artifactId>gs-ui</artifactId>
            <version>1.2</version>
        </dependency>
        <dependency>
            <groupId>org.graphstream</groupId>
            <artifactId>gs-algo</artifactId>
            <version>1.2</version>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>4.1.9.Final</version>
        </dependency>           
        <dependency>
            <groupId>org.rxtx</groupId>
            <artifactId>rxtx</artifactId>
            <version>2.1.7</version>
        </dependency>
        <dependency>
            <groupId>org.bidib.jbidib.org.qbang.rxtx</groupId>
            <artifactId>rxtxcomm</artifactId>
            <version>2.2</version>
        </dependency>
    </dependencies>
</project>

4.0.0
com.javacodegeeks.snippets.enterprise
春天的例子
0.0.1-快照
罐子
maven编译器插件
2.3.2
1.6
1.6
org.apache.maven.plugins
maven编译器插件
org.apache.maven.plugins
maven eclipse插件
org.apache.maven.plugins
maven jar插件
真的
com.javacodegeeks.snippets.enterprise.App
org.apache.maven.plugins
maven surefire插件
org.springframework
弹簧芯
3.2.4.1发布
com.rappologic
xbee api
0.9
org.springframework
spring上下文
3.2.4.1发布
org.springframework
春季甲虫
3.2.4.1发布
公共dbcp
公共dbcp
1.2.2
javax.persistence
持久性api
1
mysql
mysql连接器java
5.1.6
柱状图
柱状图
1.0.0
共同
共同
0.9.5
org.graphstream
gs核心
1.2
org.graphstream
gs用户界面
1.2
org.graphstream
gs算法
1.2
log4j
log4j
1.2.17
org.hibernate
冬眠核心
4.1.9.最终版本
org.rxtx
rxtx
2.1.7
org.bidib.jbidib.org.qbang.rxtx
rxtxcomm
2.2
之后,我在项目的目标目录中得到了一个文件
MyProject-0.0.1-SNAPSHOT.jar
。在Eclipse中双击这个jar会弹出一个窗口,上面写着“Java虚拟机启动器-发生了Java异常!”。为了进一步了解可能出现的问题,我在桌面上复制了这个jar,并从中运行
java-jarmyproject-0.0.1-SNAPSHOT.jar
。之后,我得到了以下错误:


假设从错误日志中,我尝试搜索是否已将
org.hibernate.cfg.NamingStrategy
包含在我的Maven存储库中,是的,我确实有它。在那之后,我被卡住了。有什么想法吗?谢谢。

您需要创建一个可执行的fat jar:一个也包含jar依赖项的fat jar。请参阅:

您必须在类路径中包含代码所需的所有依赖项。 您可以天真地使用shell脚本手动将所有内容添加到
java-cp
参数中,但这很脆弱,并且在某些内容发生更改时会完全失败

最简单的方法是使用
shade
插件制作一个包含所有依赖项的uber jar。
请注意,如果依赖项中有任何依赖项是经过加密签名的,那么这将无法正常工作。不幸的是,签名内容位于
MANIFEST
文件中,因此它全局应用于整个.jar,而不是单个类或包。您必须手动从uber jar中删除签名。

您的jar文件不包含依赖项。看看这个,可以找到一种创建包含所有依赖项的“uber jar”的方法。它向您展示了如何使用着色器插件处理一些资源冲突。正如许多人提到的,您需要包括其他类。这可以通过几种方式实现。目前,“将所有jar中的所有类放在我的jar中”的方法很可能是最适合您的方法。