0

次のbuild.batファイル があります。

echo off  
set JAVA_HOME="C:\Program Files\Java\jdk1.6.0_25"  
set BUILD_CP="C:\Program Files\Java\jdk1.6.0_25\bin\lib\tools.jar";"C:\Program Files\Java\jdk1.6.0_25\bin";..\devlib\ant.jar;..\devlib\optional.jar;..\devlib\junit.jar;..\devlib\xercesImpl.jar;..\devlib\xmlParserAPIs.jar;  
"C:\Program Files\Java\jdk1.6.0_25\bin\java" -classpath %BUILD_CP% org.apache.tools.ant.Main -buildfile build.xml all  

set BUILD_CP=  

pause  

実行すると、次のようになります。

ビルドに失敗しました

file:D:/Development/Java/Frameworks/JMeter/TestDemoIbatis/iBATIS_JPetStore-4.0.5/build/build.xml:29: Unable to find a javac compiler;
com.sun.tools.javac.Main is not on the classpath.
Perhaps JAVA_HOME does not point to the JDK

Total time: 0 seconds
Press any key to continue . . .  

しかし、私のJAVA_HOMEPATHは適切に設定されています:

ここに画像の説明を入力してください

更新:
antスクリプト:

<project name="JPetStore" default="all" basedir=".">  

  <property file="build.properties"/>  

  <path id="classpath">  
    <pathelement location="${src}/"/>  
    <fileset dir="${lib}" includes="**/*.jar" />  
    <fileset dir="${devlib}" includes="**/*.jar" />  
  </path>  

  <target name="clean" >  
    <delete dir="${wars}"/>  
    <delete dir="${webapp}"/>  
    <delete>  
      <fileset dir="${src}" >  
        <include name="**/*.class"/>  
      </fileset>  
    </delete>  
  </target>  

  <target name="prepare" depends="clean">  
    <mkdir dir="${wars}"/>  
    <mkdir dir="${webapp}"/>  
    <mkdir dir="${webapp}/WEB-INF/classes"/>  
    <mkdir dir="${webapp}/WEB-INF/lib"/>  
  </target>  

  <target name="compile" depends="prepare"> //LINE 29 that fails 
    <javac srcdir="${src}" destdir="${webapp}/WEB-INF/classes" deprecation="off" debug="${debug}">  
      <classpath refid="classpath"/>  
    </javac>  
  </target>  

  <target name="assemble.view">  
    <copy todir="${webapp}">  
      <fileset dir="${web}">  
        <include name="**/*.jsp"/>  
        <include name="**/*.html"/>  
      </fileset>  

    </copy>  
  </target>  

  <target name="assemble" depends="compile">  
    <copy todir="${webapp}/WEB-INF/classes">  
      <fileset dir="${src}" >  
        <exclude name="**/*.java"/>  
        <exclude name="**/*.class"/>  
      </fileset>  
    </copy>  
    <copy todir="${webapp}/WEB-INF/lib">  
      <fileset dir="${lib}" />  
    </copy>  
    <copy todir="${webapp}">  
      <fileset dir="${web}" />  
    </copy>  
  </target>  

  <target name="war" depends="assemble">  
    <jar jarfile="${wars}/jpetstore.war">  
      <fileset dir="${webapp}">  
        <include name="**/*"/>  
      </fileset>  
    </jar>  
  </target>  

  <target name="all" depends="war" />  

</project>  

ここでの問題は何ですか?私はWindows7/64-bit

4

3 に答える 3

1

スペースが原因でクラスパスが分割されないように、クラスパスを二重引用符で囲んでみてください。

これから:

"C:\Program Files\Java\jdk1.6.0_25\bin\java" -classpath %BUILD_CP% org.apache.tools.ant.Main -buildfile build.xml all  

"C:\Program Files\Java\jdk1.6.0_25\bin\java" -classpath "%BUILD_CP%" org.apache.tools.ant.Main -buildfile build.xml all 

編集:

BUILD_CPから引用符を削除してみることもできます。

echo off  
set JAVA_HOME="C:\Program Files\Java\jdk1.6.0_25"  
set BUILD_CP=C:\Program Files\Java\jdk1.6.0_25\bin\lib\tools.jar;C:\Program Files\Java\jdk1.6.0_25\bin;..\devlib\ant.jar;..\devlib\optional.jar;..\devlib\junit.jar;..\devlib\xercesImpl.jar;..\devlib\xmlParserAPIs.jar;  
"C:\Program Files\Java\jdk1.6.0_25\bin\java" -classpath "%BUILD_CP%" org.apache.tools.ant.Main -buildfile build.xml all  

set BUILD_CP=  

pause  
于 2012-11-18T12:20:52.747 に答える
0

のスペースに何らかの問題があるようですProgram Files
@Chrisのコメントに続いて、自分でファイルを作成しようとしましたが、環境変数ant -pが原因で失敗したことに気付きました。から 作ることで、直接走って上手く作れるようになりました。 のスペースで問題が発生したことはなく、常ににインストールします。 したがって、これがの問題であるかどうかはわかりません。 誰かがこれが発生する理由を説明できれば、私は答えを承認済みとしてマークします""
JAVA_HOME=C:\Program Files\Java\jdk1.6.0_25JAVA_HOME="C:\Program Files\Java\jdk1.6.0_25"ant
JAVA_HOMEProgram Files
Windows 7

于 2012-11-18T12:03:21.863 に答える
0

これは私のためにうまくいきました:

echo off

set JAVA_HOME="c:\Program Files\Java\jdk1.6.0_25"

set BUILD_CP=%JAVA_HOME%\lib\tools.jar;..\devlib\ant.jar;..\devlib\optional.jar;..\devlib\junit.jar;..\devlib\xercesImpl.jar;..\devlib\xmlParserAPIs.jar;

%JAVA_HOME%\bin\java -classpath %BUILD_CP% org.apache.tools.ant.Main -buildfile build.xml all

set BUILD_CP=

pause

source=1.4ディレクティブを追加するためにbuild.xmlを変更する必要があることに注意してください。

<javac srcdir="${src}" destdir="${webapp}/WEB-INF/classes" deprecation="off" debug="${debug}" source="1.4">
于 2012-11-18T12:52:05.543 に答える