微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法执行Maven .jar

如何解决无法执行Maven .jar

作为序言(您可以略过),我是一个相对缺乏经验的程序员(与行业专家相比),并且想尝试将Maven用作依赖项管理器以及一种可能更好的自我生成方法包含用于我的高级Science Fair项目的.jar文件

(如果您跳过上一段,请在此处开始阅读) 我能够清理,验证,编译和打包我的Maven项目。 .jar文件生成,在我的文件资源管理器中,该文件被识别为可执行的.jar文件。我正在使用JDK 11.0.2。当我双击文件浏览器中的.jar文件时,我的光标在没有任何反应的情况下,瞬间旋转了一个小的“我正在做某事”蓝色圆圈。当我尝试使用

运行文件
java -jar Project-Name-alpha.jar

出现以下错误

Exception in thread "main" java.lang.UnsupportedClassversionError: com/CompanyName/Main has been compiled by a more recent version of the Java Runtime (class file version 55.0),this version of the Java Runtime only recognizes class file versions up to 52.0
    at java.lang.classLoader.defineClass1(Native Method)
    at java.lang.classLoader.defineClass(UnkNown Source)
    at java.security.SecureClassLoader.defineClass(UnkNown Source)
    at java.net.urlclassloader.defineClass(UnkNown Source)
    at java.net.urlclassloader.access$100(UnkNown Source)
    at java.net.urlclassloader$1.run(UnkNown Source)
    at java.net.urlclassloader$1.run(UnkNown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    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)
    at sun.launcher.LauncherHelper.checkAndLoadMain(UnkNown Source)

我的pom.xml文件中的相关部分是:

  <groupId>com.CompanyName</groupId>
  <artifactId>ProjectName</artifactId>
  <version>alpha</version>
  <packaging>jar</packaging>

  <plugin>
    <artifactId>maven-jar-plugin</artifactId>
    <version>3.0.2</version>
    <configuration>
      <archive>
        <manifest>
          <addClasspath>true</addClasspath>
          <classpathPrefix>dependency-jars/</classpathPrefix>
          <mainClass>com.FoxInnovations.Main</mainClass>
        </manifest>
       </archive>
     </configuration>
  </plugin>



   <plugin>
      <artifactId>maven-assembly-plugin</artifactId>
        <version>3.0.0</version>
        <configuration>
          <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
          </descriptorRefs>
        </configuration>
        <executions>
          <execution>
            <id>make-assembly</id> 
            <phase>package</phase> <!-- bind to the packaging phase -->
            <goals>
              <goal>single</goal>
            </goals>
          </execution>
        </executions>
  </plugin>
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <version>2.5.1</version>
    <executions>
      <execution>
      <id>copy-dependencies</id>
      <phase>package</phase>
      <goals>
          <goal>copy-dependencies</goal>
      </goals>
      <configuration>
          <outputDirectory>${project.build.directory}/dependency-jars/</outputDirectory>
      </configuration>
        </execution>
    </executions>
      </plugin>        <plugin>
      <artifactId>maven-assembly-plugin</artifactId>
        <version>3.0.0</version>
        <configuration>
          <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
          </descriptorRefs>
        </configuration>
        <executions>
          <execution>
            <id>make-assembly</id> 
            <phase>package</phase> <!-- bind to the packaging phase -->
            <goals>
              <goal>single</goal>
            </goals>
          </execution>
        </executions>
  </plugin>
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <version>2.5.1</version>
    <executions>
      <execution>
      <id>copy-dependencies</id>
      <phase>package</phase>
      <goals>
          <goal>copy-dependencies</goal>
      </goals>
      <configuration>
          <outputDirectory>${project.build.directory}/dependency-jars/</outputDirectory>
      </configuration>
        </execution>
    </executions>
      </plugin>

我认为问题可能是我没有正确的Java JRE,但找不到JRE 11,我认为JDK通常包括相应的JRE。

我敢打赌,我可能正在犯一些我已经忽略的菜鸟错误

如果我错误地未包含对解决此问题很重要的内容,请告知我,我将尽快添加

解决方法

您正在执行的Java版本小于用于编译的Java版本。您可能需要为Maven编译器插件设置java目标和源。

<properties>
    <maven.compiler.source>1.11</maven.compiler.source>
    <maven.compiler.target>1.11</maven.compiler>target>
</properties>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。