繁体   English   中英

无法执行 Maven .jar

[英]Unable to execute Maven .jar

作为前言(你可以跳过这个),我是一个相对缺乏经验的程序员(与行业专业人士相比),我想尝试使用 Maven 作为依赖管理器,并作为一种生成自包含 .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 版本执行 jar。 您可能需要为 maven 编译器插件设置 java 目标和源。

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

暂无
暂无

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM