Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JDK与Maven冲突_Maven_Classpath_Java_Javac - Fatal编程技术网

JDK与Maven冲突

JDK与Maven冲突,maven,classpath,java,javac,Maven,Classpath,Java,Javac,我正在使用与maven插件集成的EclipseJuno 我已经在我的系统上安装了JDK1.6 我的环境变量是 JAVA_HOME - F:\Program Files\Java\jdk1.6.0_37 MAVEN_HOME - F:\apache-maven-3.0.4 classpath - ;.;%JAVA_HOME%\lib\tools.jar; Path - C:\Program Files\AMD APP\bin\x86;C:\Program Files\Common Files

我正在使用与maven插件集成的EclipseJuno

我已经在我的系统上安装了JDK1.6

我的环境变量是

JAVA_HOME - F:\Program Files\Java\jdk1.6.0_37

MAVEN_HOME - F:\apache-maven-3.0.4

classpath - ;.;%JAVA_HOME%\lib\tools.jar;

Path - C:\Program Files\AMD APP\bin\x86;C:\Program Files\Common Files\Microsoft Shared\Windows Live;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files\Windows Live\Shared;C:\Program Files\QuickTime\QTSystem\;.;%JAVA_HOME%\bin;%MAVEN_HOME%\bin;
我的JDK和JRE工作正常

命令行检查:

在我的eclipse中,我正在构建一个新的maven web项目,它应该会给我一个war文件

My 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>com.achutha.labs</groupId>
  <artifactId>01JsfExample</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
  <name>01JsfExample</name>


  <dependencies>

        <dependency>
            <groupId>com.sun.faces</groupId>
            <artifactId>jsf-api</artifactId>
            <version>2.1.7</version>
        </dependency>
        <dependency>
            <groupId>com.sun.faces</groupId>
            <artifactId>jsf-impl</artifactId>
            <version>2.1.7</version>
        </dependency>

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
        </dependency>

        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.1</version>
        </dependency>

    </dependencies>

    <build>
        <finalName>JavaServerFaces</finalName>

        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3.1</version>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>
我在eclipse上的其他java程序正在编译并运行良好。 除了maven项目。由于上述原因,生成失败,因此未生成war文件


如何解决这个问题?

您是否在Eclipse中运行Maven目标?如果是这样的话,看起来Eclipse正试图访问JRE而不是JDK:
F:\ProgramFiles\Java\jre6\..\lib\tools.jar


尽管
JAVA\u HOME
似乎在Windows级别上设置正确,但在Eclipse中运行应用程序时可能使用的是JRE,而不是JDK。在Eclipse中,查看已安装的JRE列表(窗口->首选项->Java->已安装的JRE)。如果您没有JDK,请在选择JRE后单击“编辑”,并在该对话框中输入JDK的位置。

您是否在Eclipse中运行Maven目标?如果是这样的话,看起来Eclipse正试图访问JRE而不是JDK:
F:\ProgramFiles\Java\jre6\..\lib\tools.jar


尽管
JAVA\u HOME
似乎在Windows级别上设置正确,但在Eclipse中运行应用程序时可能使用的是JRE,而不是JDK。在Eclipse中,查看已安装的JRE列表(窗口->首选项->Java->已安装的JRE)。如果您没有JDK,请在选择JRE后单击“编辑”,并在该对话框中输入JDK的位置。

我假设您正在尝试使用eclipse中的maven安装选项。尝试从命令行安装mvn。如果失败,问题在于java设置(安装、路径、变量)。重新检查java主页是否正确指向jdk而不是jre。还要确保eclipse javaw.exe来自jdk bin目录

若cmd行安装有效,那个么问题在于maven项目的eclipse java配置。您可以尝试通过以下方式解决此问题:-

  • 您应该验证在eclipse中设置的项目属性,以确保java运行时是正确的

  • 您应该在项目方面验证java编译是否设置为1.6

  • 您应该在pom.xml sourcejdk和targetjdk标记中设置java编译信息


  • 我假设您正在尝试使用eclipse中的maven安装选项。尝试从命令行安装mvn。如果失败,问题在于java设置(安装、路径、变量)。重新检查java主页是否正确指向jdk而不是jre。还要确保eclipse javaw.exe来自jdk bin目录

    若cmd行安装有效,那个么问题在于maven项目的eclipse java配置。您可以尝试通过以下方式解决此问题:-

  • 您应该验证在eclipse中设置的项目属性,以确保java运行时是正确的

  • 您应该在项目方面验证java编译是否设置为1.6

  • 您应该在pom.xml sourcejdk和targetjdk标记中设置java编译信息


  • 在该系统上安装JDK。现在,您的控制台中似乎只有JRE.write
    set JAVA
    。这将显示您的JAVA_主页,看起来它指向的是JRE,而不是安装在该系统上的JDK。现在,您的控制台中似乎只有JRE.write
    set JAVA
    。这将显示您的JAVA_主页,看起来它指向的是JRE而不是JDKI。不要相信Eclipse关心JAVA_主页的价值,因为您可以设置多个JRE和JDK。您是对的,@tom。我的意思是,尽管JAVA_HOME在Windows级别可能很好,但在Eclipse中JDK/JRE是通过不同的方式定义的。我可能应该在我的演讲中重新措辞那句话answer@junal弗洛雷斯。。。你的猜测是对的。它指向的是其他JRE,而不是jdk文件夹中的JRE。谢谢你的解决方案。它非常有效。我不相信Eclipse关心JAVA_HOME的价值,因为您可以设置多个JRE和JDK。您是对的,@tom。我的意思是,尽管JAVA_HOME在Windows级别可能很好,但在Eclipse中JDK/JRE是通过不同的方式定义的。我可能应该在我的演讲中重新措辞那句话answer@junal弗洛雷斯。。。你的猜测是对的。它指向的是其他JRE,而不是jdk文件夹中的JRE。谢谢你的解决方案。这非常有效,问题出在eclipse中,它采用了错误的JRE,而不是JDK中的JRE。感谢您的回答。问题出在eclipse中,它采用了错误的JRE,而不是JDK中的JRE。谢谢你的回答。
    SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
    SLF4J: Defaulting to no-operation (NOP) logger implementation
    SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
    [INFO] Scanning for projects...
    [INFO]                                                                         
    [INFO] ------------------------------------------------------------------------
    [INFO] Building 01JsfExample 0.0.1-SNAPSHOT
    [INFO] ------------------------------------------------------------------------
    [INFO] 
    [INFO] --- maven-resources-plugin:2.5:resources (default-resources) @ 01JsfExample ---
    [debug] execute contextualize
    [WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent!
    [INFO] Copying 0 resource
    [INFO] 
    [INFO] --- maven-compiler-plugin:2.3.1:compile (default-compile) @ 01JsfExample ---
    [WARNING] File encoding has not been set, using platform encoding Cp1252, i.e. build is platform dependent!
    [INFO] Compiling 1 source file to F:\Workspace\01JsfExample\target\classes
    [INFO] -------------------------------------------------------------
    [ERROR] COMPILATION ERROR : 
    [INFO] -------------------------------------------------------------
    [ERROR] Unable to locate the Javac Compiler in:
      F:\Program Files\Java\jre6\..\lib\tools.jar
    Please ensure you are using JDK 1.4 or above and
    not a JRE (the com.sun.tools.javac.Main class is required).
    In most cases you can change the location of your Java
    installation by setting the JAVA_HOME environment variable.
    [INFO] 1error
    [INFO] -------------------------------------------------------------
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD FAILURE
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 0.554s
    [INFO] Finished at: Mon Dec 10 06:54:01 IST 2012
    [INFO] Final Memory: 3M/15M
    [INFO] ------------------------------------------------------------------------
    [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.1:compile (default-compile) on project 01JsfExample: Compilation failure
    [ERROR] Unable to locate the Javac Compiler in:
    [ERROR] F:\Program Files\Java\jre6\..\lib\tools.jar
    [ERROR] Please ensure you are using JDK 1.4 or above and
    [ERROR] not a JRE (the com.sun.tools.javac.Main class is required).
    [ERROR] In most cases you can change the location of your Java
    [ERROR] installation by setting the JAVA_HOME environment variable.
    [ERROR] -> [Help 1]
    [ERROR] 
    [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
    [ERROR] Re-run Maven using the -X switch to enable full debug logging.
    [ERROR] 
    [ERROR] For more information about the errors and possible solutions, please read the following articles:
    [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException