0

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はスムーズに動作しています。

コマンドラインチェック: コマンドラインチェック

私の日食では、warファイルを提供する新しいMavenWebプロジェクトを構築しています。

私の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>

私がMavenクリーンを実行すれば、それは成功です。しかし、Mavenをインストールすると、jdkの問題が発生します。

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

Eclipse上の他のJavaプログラムは、正常にコンパイルおよび実行されています。Mavenプロジェクトを除く。上記の理由でビルドが失敗したため、warファイルが生成されていません。

この問題を解決する方法は?

4

2 に答える 2

2

EclipseでMavenの目標を実行していますか?その場合、EclipseはJDKではなくJREにアクセスしようとしているようです。F:\Program Files\Java\jre6\..\lib\tools.jar

Windowsレベルでは正しく設定されてJAVA_HOMEいるように見えますが、Eclipseでは、JDKではなくJREを使用してアプリを実行している可能性があります。Eclipseで、インストールされているJREリストを確認します(「ウィンドウ」->「設定」->「Java」->「インストールされているJRE」)。JDKがない場合は、JREを選択してから[編集]をクリックし、そのダイアログボックスでJDKの場所を入力します。

于 2012-12-10T02:28:01.070 に答える
1

EclipseのMavenインストールオプションを使用しようとしていると想定しています。コマンドラインからmvninstallを試してください。それが失敗した場合、問題はJavaセットアップ(インストール、パス、変数)にあります。Javaホームがjreではなくjdkを正しく指しているかどうかを再確認します。また、jdkbinディレクトリからのEclipsejavaw.exeを確認してください。

cmd line installが機能する場合、問題はMavenプロジェクトのEclipseJava構成にあります。あなたはそれを解決することを試みることができます-

  1. Eclipseで設定されたプロジェクトのプロパティを確認して、Javaランタイムが正しいことを確認する必要があります。

  2. プロジェクトファセットで、Javaコンパイルが1.6に設定されていることを確認する必要があります

  3. pom.xmlのsourcejdkタグとtargetjdkタグでJavaコンパイル情報を設定する必要があります。

于 2012-12-10T02:40:04.450 に答える