2017-01-22 16 views
0

私は、JavaプログラムをコンパイルするためにLinux上でant build関数を使用しています。私は3つのJavaファイルを持っていると私は私のmain.javaファイルにインポートしようとしているが、私はant buildパッケージが存在しないエラー

/home/ggaz1/Ser321/Assigns/Assign2/src/main.java:4 error: package Assign2.src does not exist 

がここにbuild.xmlファイルであるというエラーを取得します。それへのパスは、事前に

/home/ggaz1/Ser321/Assigns/Assign2 

<?xml version="1.0"?> 
<project name="Movie Library." 
     default="targets" basedir="." 
     xmlns:dn="antlib:org.apache.ant.dotnet" 
     xmlns="antlib:org.apache.tools.ant" 
     xmlns:cpptasks="antlib:net.sf.antcontrib.cpptasks"> 

    <property name="src.dir" value="src"/> 
    <property name="build" value="classes"/> 
    <property environment="env"/> 
    <property name="user" value="${env.USERNAME}"/> 

    <target name="targets"> 
     <echo message="Targets are clean, prepare, build, execute, and targets"/> 
    </target> 

    <path id="compile.classpath"> 
     <pathelement location="${build}"/> 
    </path> 

    <target name="prepare"> 
     <mkdir dir="${build}" /> 
    </target> 

    <target name="clean"> 
     <delete dir="${build}" failonerror="false"/> 
    </target> 

    <target name="build" depends="prepare"> 
     <javac srcdir="${src.dir}" 
      includeantruntime="false" 
      destdir="${build}"> 
     <src path="src"/> 
     <classpath refid="compile.classpath"/> 
     </javac> 
    </target> 

    <target name="execute.java" depends="build" 
      description="Run the program"> 
     <echo message="command line execute: java -cp classes main, MovieDescription, MovieLibrary" /> 
     <java classname="main" fork="yes"> 
      <classpath refid="compile.classpath"/> 
     </java> 
    </target> 
</project> 

おかげ

+0

(コメントにはない質問を編集して)完全なエラーメッセージと失敗したターゲットを表示してください。あなたのJavaファイルレイアウトは何ですか?メインクラスはクラスパスのルートにありますか?そして、 'MovieDescription'クラスを含む' Assign2'というサブディレクトリがありますか? – vanje

+0

私はAssign2としてフォルダを持っています。次に、MovieDescription.java、MovieLibrary.java、main.javaを持つsrcフォルダがあります。 質問を修正し、エラー –

+0

を追加しました。あなたのbuild.xmlの関連部分を表示してください。失敗したターゲットと関連付けられたプロパティ。 build.xmlの長さが長すぎない場合は、ファイル全体を含めることができます。そして、build.xmlのパスについて言及することを忘れないでください。その情報がなければ、手助けすることは不可能です。 – vanje

答えて

0

あなたが実際にすべてのパッケージを持っていないです。すべてのJavaソースコードファイルは、srcフォルダーにあります。 srcフォルダはパッケージのルートです。 assign2パッケージを希望する場合は、assign2というsrcフォルダを作成し、assign2パッケージに属するすべてのJavaファイルをそのフォルダに配置する必要があります。あなたのMainクラス自体は、パッケージやクラスMovieDescriptionMovieLibraryなしであると仮定すると、

は、パッケージassign2です。その後Main.javaは、任意のパッケージdeclarartionを持っていない

--src 
    | 
    +---- Main.java 
    | 
    +---- assign2 
      | 
      +---- MovieDescription.java 
      | 
      +---- MovieLibrary.java 

その後、あなたのファイルレイアウトは次のようになります。

package assign2; 
[...] 

などMain.java表情で輸入:

イムMovieDescription.javaMovieLibrary.javaパッケージ宣言はする必要があります

import assign2.MovieLibrary; 
import assign2.MovieDescription; 

はたぶん、あなたはOracle Java Tutorial, Lesson: Packagesを見ている必要があります。

Javaの命名規則に従って、パッケージと変数には小文字で始まる名前しか使用しないでください。クラスは常に大文字で始まります。

関連する問題