2012-01-02 17 views
0

Eclipseの最初のantビルドに少し問題があります。ここにbuild.xmlビルドファイルがあります。 nat.rutherford.DesktopStarter:Java - Antビルド(Eclipse) - メインクラスが見つかりませんでした:nat.rutherford.DesktopStarter

<project name="Rutherford" default="dist" basedir="."> 
    <description> 
     simple example build file 
    </description> 
    <!-- set global properties for this build --> 
    <property name="src" location="src"/> 
    <property name="build" location="build"/> 
    <property name="dist" location="dist"/> 
    <property name="libs" value="libs"/> 

    <path id="classpath"> 
     <fileset dir="${libs}" includes="**/*.jar"/> 
    </path> 

    <target name="init"> 
     <!-- Create the time stamp --> 
     <tstamp/> 
     <!-- Create the build directory structure used by compile --> 
     <mkdir dir="${build}"/> 
    </target> 

    <target name="compile" depends="init" 
     description="compile the source " > 
     <!-- Compile the java code from ${src} into ${build} --> 
     <javac srcdir="${src}" destdir="${build}" classpathref="classpath"> 
      <compilerarg line="-encoding utf-8"/> 
     </javac> 
    </target> 

    <target name="dist" depends="compile" 
     description="generate the distribution" > 
     <!-- Create the distribution directory --> 
     <mkdir dir="${dist}/lib"/> 

     <!-- Put everything in ${build} into the MyProject-${DSTAMP}.jar file --> 
     <jar jarfile="${dist}/MyProject-${DSTAMP}.jar" basedir="${build}"> 
      <manifest> 
       <attribute name="Main-Class" value="nat.rutherford.DesktopStarter"/> 
      </manifest> 
     </jar> 
    </target> 

    <target name="run"> 
     <java jar="${dist}/MyProject-${DSTAMP}.jar" fork="true"/> 
    </target> 

    <target name="clean" 
     description="clean up" > 
     <!-- Delete the ${build} and ${dist} directory trees --> 
     <delete dir="${build}"/> 
     <delete dir="${dist}"/> 
    </target> 
</project> 

「これは警告やエラーなしでOKコンパイルが、私はそれが言うの.jarを実行しようとするには、メインクラスが見つかりませんでした。プログラムは終了」=(

私は、問題のページのトンを読んだことがあるが、これまでのところ、何も決定的ます

私は、Eclipseを使用して、それをコンパイルすることができました - 。>ファイル - >エクスポート - > Javaの - >しかし、私は、UTF-8でエンコードされた.txtファイルを使用しているので、そのように扱うことができないと思われます。私はそれらを必要とします!つまり、読むべきギリシャ文字が...dσ/dΩ...現在読み込まれている...dÃ/ d©...これはうまく動作しません^^

基本的に私は自分のAntビルド作業を行う必要があることを念頭に置いて、私のUTF- 8つのエンコードされた.txtファイル。

+0

このクラスは存在しますか? –

答えて

4

jarファイルを作成するときに問題が発生しましたdistあなたのコンパイルが正しい場合、あなたの瓶をパッケージ化するときに問題はありません。間違っているもの:

  • <mkdir dir="${dist}/lib"/> - >これは平均持っていない、あなたはそれをあなたあなたがして、あなたのであなたのライブラリーを含むされていない決して

  • 秒を使用していませんあなたのjarファイルを実行しようとすると、エラーメッセージが表示される理由がうまくいきません。メインクラスが見つかりませんでした:nat.rutherford.DesktopStarter。プログラムは今すぐ終了するあなたのライブラリがWinzipなどを使ってあなたのjarファイル内にないことがわかります。私はあなたがWindowsやそれに類するものを使ってjarを直接実行しようとすると、あなたの問題を見ていると思います。コンソールに印刷された問題を見て、何が起こっているかを確認する良い方法は、次の方法であなたのjarファイルを実行している:java -jar MyProject-20120102.jar

  • 参照:How to include your libraries in you jar?

  • そして、あなたが使用してjarファイルのパッケージについての詳細をお知りになりたい場合はアリtry this

  • あなたは$ {LIBS}フォルダ内のライブラリを含めるためにあなたのマニフェストクラスパス属性を変更する必要がもう一つ。

+0

@oers私の誤りを見て、私の答えを編集してください – jenaiz

+0

@jenaiz私はあなたが何を意味するか分かりません。すべての.classファイルは、必要な場所にビルドディレクトリに存在します。あなたが私とは違うやり方をしているのを見ることはできません。 – Neilos

+0

問題なくコンパイルでき、クラスが** {build} **フォルダにある場合、jarをパッケージ化するときに問題がコード内に存在するはずです。あなたのベースディレクトリ(どこからのディレクトリか)、あなたが含むライブラリ(この場合はライブラリは含まれていません)、そしてMainクラスのマニフェストを作成しています:nat.rutherford.DesktopStarter – jenaiz

0

メインクラスとしてnat.rutherford.DesktopStarterを綴った実行可能ファイルJARにマニフェストを追加したようです。

JARを開き、manifest.mfが表示されていることを確認して、実際にAnt build.xmlが何をしているかを確認することをお勧めします。

DesktopStarted.classがフォルダパスnat.rutherfordに表示されていることも確認します。そうでない場合、JVMはそれを見つけられません。

+0

JARから読み込むテストクラスを使用してマニフェストをチェックし、主な属性を出力しました。 - Antバージョン:Apache Ant 1.7.1 - マニフェストバージョン:1.0 - 作成者:20。4-b02(Sun Microsystems Inc.) - メインクラス:nat.rutherford.DesktopStarter – Neilos

+0

JARには、パスnat/rutherfordにDesktopStart.classという名前のファイルが含まれていません – duffymo

+0

はい、私がそこにいないために間違っていることを知っている。私が言うことができる限り、そこにあるはずですか? .classファイルは 'build'というフォルダにあります。これは私がJARから取得したもので、マニフェストを正しく作成するので、何が欠けていますか?これは私の初めてのビルドなので、私は見ていない何か初心者かもしれません。 – Neilos

関連する問題