简体   繁体   English

由NetBeans生成的jar虽然从IDE运行,但没有运行

[英]Jar generated by NetBeans not running although it runs from the IDE

Here is my pom.xml. 这是我的pom.xml。

<?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.mycompany</groupId>
<artifactId>TimeTrackerWithMaven</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
    <java.version>1.8</java.version>
</properties>
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>2.4</version>
            <configuration>
                <archive>
                    <manifest>
                        <addClasspath>true</addClasspath>
                        <mainClass>com.mycompany.timetrackerwithmaven.Main</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
            <version>0.7.4.201502262128</version>
            <executions>
                <execution>
                    <goals>
                        <goal>prepare-agent</goal>
                    </goals>
                </execution>
                <execution>
                    <id>report</id>
                    <phase>prepare-package</phase>
                    <goals>
                        <goal>report</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>
<dependencies>
    <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-core</artifactId>
        <version>2.0.31-beta</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-io -->
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-io</artifactId>
        <version>1.3.2</version>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
    </dependency>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>4.2.4.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-test</artifactId>
        <version>4.2.4.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-beans</artifactId>
        <version>4.2.4.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>4.2.4.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>2.4</version>
    </dependency>
    <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>19.0-rc2</version>
    </dependency>
    <dependency>
        <groupId>com.google.collections</groupId>
        <artifactId>google-collections</artifactId>
        <version>1.0</version>
    </dependency>
    <dependency>
        <groupId>net.java.dev.jna</groupId>
        <artifactId>jna</artifactId>
        <version>4.1.0</version>
    </dependency>
    <dependency>
        <groupId>net.java.dev.jna</groupId>
        <artifactId>platform</artifactId>
        <version>3.5.2</version>
    </dependency>
</dependencies>
<name>TimeTrackerWithMavenDevelopment</name>

Here is my MANIFEST.MF in the generated jar. 这是生成的jar中的MANIFEST.MF。

Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Built-By: Blackstorm
Class-Path: mockito-core-2.0.31-beta.jar byte-buddy-0.6.14.jar objenes
 is-2.1.jar commons-io-1.3.2.jar junit-4.12.jar hamcrest-core-1.3.jar 
 spring-core-4.2.4.RELEASE.jar commons-logging-1.2.jar spring-test-4.2
 .4.RELEASE.jar spring-beans-4.2.4.RELEASE.jar spring-context-4.2.4.RE
 LEASE.jar spring-aop-4.2.4.RELEASE.jar aopalliance-1.0.jar spring-exp
 ression-4.2.4.RELEASE.jar gson-2.4.jar guava-19.0-rc2.jar google-coll
 ections-1.0.jar jna-4.1.0.jar platform-3.5.2.jar
Created-By: Apache Maven 3.0.5
Build-Jdk: 1.8.0_101
Main-Class: com.mycompany.timetrackerwithmaven.Main

When I run my code with "java -jar TimeTrackerWithMaven-1.0-SNAPSHOT.jar" I get the following error. 当我使用“ java -jar TimeTrackerWithMaven-1.0-SNAPSHOT.jar”运行代码时,出现以下错误。

java.lang.NoClassDefFoundError: org/springframework/context/ApplicationContext at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Unknown Source) at java.lang.Class.privateGetMethodRecursive(Unknown Source) at java.lang.Class.getMethod0(Unknown Source) at java.lang.Class.getMethod(Unknown Source) at sun.launcher.LauncherHelper.validateMainClass(Unknown Source) at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source) Caused by: java.lang.ClassNotFoundException: org.springframework.context.ApplicationContext at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) ... 7 more Error: A JNI error has occurred, please check your installation and try again Exception in thread "main" java.lang.NoClassDefFoundError:org / springframework / context / ApplicationContext at java.lang.Class.getDeclaredMethods0(本地方法)at java.lang.Class.privateGetDeclaredMethods(未知源)at java.lang.Class.privateGetMethodRecursive(未知源)原因:java.lang.Class.getMethod0(未知源),位于java.lang.Class.getMethod(未知源),位于sun.launcher.LauncherHelper.validateMainClass(未知源),位于sun.launcher.LauncherHelper.checkAndLoadMain(未知源) java.lang.ClassNotFoundException:org.springframework.context.ApplicationContext在java.net.URLClassLoader.findClass(未知源)在java.lang.ClassLoader.loadClass(未知源)在sun.misc.Launcher $ AppClassLoader.loadClass(未知源) ),位于java.lang.ClassLoader.loadClass(未知源)...另外7个错误:发生了JNI错误,请检查您的安装,然后重试。

Your output jar don't have necessary libraries included and dependencies can't be found on classpath. 您的输出jar没有包含必需的库,并且在classpath上找不到依赖项。 To solve that, either include them on classpath (in your case, put them in the same folder as the output jar, there may be some plugins to help automate that, though this doesn't look like a giid idea, your folder will be polluted with tons of dependency jars, keeping it out of organize) or use maven-shade-plugin to merge those dependencies into output jar. 为了解决这个问题,可以将它们包括在classpath中(在您的情况下,将它们放在输出jar所在的文件夹中,可能会有一些插件可以帮助实现自动化,尽管这看起来并不明智,但您的文件夹将被大量的依赖罐污染,使其保持混乱状态)或使用maven-shade-plugin将这些依赖合并到输出罐中。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 从我的类文件在IDE netbeans中运行jar文件 - running jar file from my class file in the IDE netbeans 将Stanford POS标记器实现为.jar的Java应用程序无法运行,在NetBeans IDE中运行良好 - Trouble running Java application implementing Stanford POS tagger as a .jar, runs fine in NetBeans IDE 在netbeans上运行但在运行jar时没有错误? - No errors when runs on netbeans but not when running the jar? JasperReports可以在Netbeans中完美运行,并且生成了我的PDF,但是编译后的.jar没有 - JasperReports runs perfectly in Netbeans and my PDF is generated but the compiled .jar does not Java程序在Netbeans中可以正常运行,但是从内置的JAR运行时,它不起作用 - Java program runs fine within Netbeans, but when running from a built JAR it does not work Java从IDE Netbeans运行GUI程序 - Java running GUI program from IDE Netbeans 从jar文件读取文件,该jar使用netbeans生成 - Read a file from a jar file, the jar generated using netbeans 代码在ide上有效,但从.jar运行时无效 - Code works on ide but not when running from .jar 从Java代码(NetBeans)运行.JAR文件 - Running .JAR file from java code (netbeans) 从NetBeans的jar包运行测试类 - Running testing class from jar package in NetBeans
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM