【问题标题】:Error running Maven Project in Eclipse using jdk1.5使用 jdk1.5 在 Eclipse 中运行 Maven 项目时出错
【发布时间】:2013-01-17 14:08:05
【问题描述】:

操作系统:Ubuntu 12.10
日食:4.2
Java:jdk1.5.0_22 和 jdk1.7
Apache Maven:3.0.4
Maven 主页:/usr/share/maven
平方米:1.2.020120903-1050

我在 Eclipse 中创建了一个非常简单的“Hello, World”Maven 项目,以便测试它以迁移我们自己的项目(使用 1.5)。我的 pom.xml 如下:

<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>br.com.contmatic</groupId>
  <artifactId>maven-test</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>MavenTest</name>
  <description>teste do maven</description>
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.5</source>
          <target>1.5</target>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

我在我的项目构建路径中设置了 J2SE-1.5 (jdk1.5.22)。 然而,尝试从 Eclipse 中运行 Maven Clean 或 Maven Install,我收到以下错误:

Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad version number in .class file
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClassFromSelf(ClassRealm.java:386)
    at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:42)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:244)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:230)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
    at org.apache.maven.cli.MavenCli.container(MavenCli.java:375)
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:191)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:592)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)

四处搜索,我发现当用于编译的 jre 版本与用于运行的 jre 版本不同时会发生这种情况。将所有内容更改为 1.7(pom.xml 和构建路径)修复了错误,这表明它可以使用 java 1.7 编译或运行。

但我似乎在我的配置中找不到错误。

运行时

mvn clean install

在终端中,maven 构建项目时不会出错。

我在 Eclipse 中做错了什么?

【问题讨论】:

    标签: eclipse maven m2e jdk1.5


    【解决方案1】:

    原来我的一些 Maven 依赖项没有使用 1.5 编译,这导致了问题。它没有在控制台中发生,因为我已经将 java 1.7 设置为默认值。

    幸运的是,我能够使用 1.7 构建我的项目并指定 1.5 来运行编译和执行。方法如下:

    在 Eclipse>Run>Run Configurations>Maven Build>New,我有这个配置:

    主标签

    基本目录:

    ${project_loc}
    

    目标:

    clean install
    

    我刚刚选择了 JRE 选项卡并选择了备用 JRE,使用我的 1.7 SDK 安装。

    接下来,我必须在我的 pom.xml 中包含 1.5 作为 maven-compiler-plugin 的源和目标,如下所示:

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.0</version>
                <configuration>
                    <encoding>ISO-8859-1</encoding>
                    <source>1.5</source>
                    <target>1.5</target>
                </configuration>
            </plugin>
    

    而且它有效。

    【讨论】:

      猜你喜欢
      • 2017-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-13
      • 2011-05-29
      • 2017-09-05
      相关资源
      最近更新 更多