【问题标题】:Workspace defines a VM that does not contain a valid jre/lib/rt.jar: C:\Program Files\Java\jre7Workspace 定义了一个不包含有效 jre/lib/rt.jar 的 VM:C:\Program Files\Java\jre7
【发布时间】:2012-07-13 15:24:15
【问题描述】:

我是 maven 新手,我一直在使用 hibernate、spring 等使用 maven 创建简单的 Web 应用程序。当我运行 mvn eclipse:eclipse 命令时出现以下错误。

[WARNING] Workspace defines a VM that does not contain a valid jre/lib/rt.jar: C:\Program Files\Java\jre7
[WARNING] could not read workspace project:c:\Users\Acer\workspace\.metadata\.plugins\org.eclipse.core.resources\.projects\myproject
org.codehaus.plexus.util.xml.pull.XmlPullParserException: processing instruction can not have PITarget with reserveld xml name (position: START_D
OCUMENT seen \r\n<?xml ... @2:7)
        at org.codehaus.plexus.util.xml.pull.MXParser.parsePI(MXParser.java:2453)
        at org.codehaus.plexus.util.xml.pull.MXParser.parseProlog(MXParser.java:1447)
        at org.codehaus.plexus.util.xml.pull.MXParser.nextImpl(MXParser.java:1395)
        at org.codehaus.plexus.util.xml.pull.MXParser.next(MXParser.java:1093)
        at org.codehaus.plexus.util.xml.Xpp3DomBuilder.build(Xpp3DomBuilder.java:187)
        at org.codehaus.plexus.util.xml.Xpp3DomBuilder.build(Xpp3DomBuilder.java:83)
        at org.codehaus.plexus.util.xml.Xpp3DomBuilder.build(Xpp3DomBuilder.java:48)
        at org.apache.maven.plugin.eclipse.reader.ReadWorkspaceLocations.readArtefact(ReadWorkspaceLocations.java:341)
        at org.apache.maven.plugin.eclipse.reader.ReadWorkspaceLocations.readWorkspace(ReadWorkspaceLocations.java:536)
        at org.apache.maven.plugin.eclipse.reader.ReadWorkspaceLocations.init(ReadWorkspaceLocations.java:94)
        at org.apache.maven.plugin.eclipse.EclipsePlugin.getWorkspaceConfiguration(EclipsePlugin.java:2063)
        at org.apache.maven.plugin.eclipse.EclipsePlugin.fillDefaultClasspathContainers(EclipsePlugin.java:1580)
        at org.apache.maven.plugin.eclipse.EclipsePlugin.setup(EclipsePlugin.java:978)
        at org.apache.maven.plugin.ide.AbstractIdeSupportMojo.execute(AbstractIdeSupportMojo.java:500)
        at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
        at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
        at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
        at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
        at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        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)
[INFO] no substring wtp server match.

这是我的pom.xml

谁能告诉我我在这里做错了什么。在此先感谢您的帮助

【问题讨论】:

    标签: java eclipse maven maven-plugin maven-3


    【解决方案1】:

    我也收到了错误:

    [警告] 工作区定义了一个不包含有效 jre/lib/rt.jar 的 VM:C:\Program Files\Java\jre6

    但我没听懂

    [警告] 无法读取工作区项目:c:\Users\Acer\workspace.metadata.plugins\org.eclipse.core.resources.projects\myproject

    (也许您没有使用选项 -Declipse.workspace=... 在 mvn 命令行上正确设置工作区路径)

    无论如何,第一个警告是由于我在非标准位置 (JAVA_HOME=C:\tools\java\jdk1.6.0_31) 使用 JDK 并将我的 Eclipse 工作区设置为默认使用而引起的。 Maven Eclipse 插件似乎没有正确选择默认 JDK,直到我从 Eclipse 中已安装的 JDK 列表中删除“C:\Program Files\Java\jre6”中的 JDK 后,“mvn eclipse:eclipse”才会起作用。我现在列表中只有正确的一个。

    【讨论】:

      【解决方案2】:

      我看起来像一个 java 问题。检查您的 java_home 目录。它指向 C:\Program Files\Java\jre7 吗?如果是这样,让 maven 也可以通过将 maven 目录(例如 D:\maven-2.2.1\conf)中的 toolchains.xml 配置为您的 java 版本来指向读取相同的位置

      <toolchains>
      <toolchain>
          <type>jdk</type>
          <provides>
              <version>1.7</version> <!--This should be same as is configured via the toolchains plugin -->
              <vendor>ibm</vendor> <!--This should be same as is configured via the toolchains plugin -->
          </provides>
          <configuration>
              <jdkHome>C:\Program Files\Java\jdk1.7.0</jdkHome>
          </configuration>
      </toolchain>
      </toolchains>
      

      【讨论】:

      • 我做了你提到的,但没有运气
      • 你是在命令提示符下还是在eclipse中执行这个命令?
      • 检查this链接是否有帮助
      【解决方案3】:

      添加您自己的 JRE,删除 Eclipse 中安装的默认 JRE。是的,它有效。我在输入命令 mvn eclipse:eclipse 时没有收到任何警告信息。

      【讨论】:

        【解决方案4】:

        尝试将您的 maven 项目存储在不是您的 eclipse 工作区的目录中,然后将项目导入 eclipse(不复制它!)。现在 mvn eclipse:eclipse 应该可以在没有警告的情况下工作。

        【讨论】:

          【解决方案5】:

          在我看来,maven 无法正确解析 Eclipse 的工作区设置。我遇到了警告,然后我删除了所有 JRE(我在 Window-Preferences-Java-Installed JRE 下有两个 JRE 和一个 JDK),只留下了 JDK。此后没有任何警告。

          【讨论】:

            猜你喜欢
            • 2011-12-03
            • 1970-01-01
            • 1970-01-01
            • 2021-05-13
            • 2014-03-26
            • 2021-07-22
            • 2012-05-12
            • 2014-01-09
            • 2021-04-18
            相关资源
            最近更新 更多