2011-08-16 25 views
0

Antを使ってアプリケーションをデプロイする方法を学ぶために単純なテスト用のJavaプロジェクトを作成しました。 JavaプロジェクトではSwingを使用してJFrameを作成し、JLabelで「Hello World」を作成します。それは次のようになります。Ant展開。 Jarがメインクラスを見つけることができません

package com.mytest; 
import javax.swing.*;   

public class home { 
    private static void createAndShowGUI() { 
     JFrame frame = new JFrame("HelloWorldSwing"); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     JLabel label = new JLabel("Hello World"); 
     frame.getContentPane().add(label); 
     frame.pack(); 
     frame.setVisible(true); 
    } 
    public static void main(String[] args) { 
     javax.swing.SwingUtilities.invokeLater(new Runnable() { 
      public void run() { 
       createAndShowGUI(); 
      } 
     }); 
    } 
} 

それから私は、build.xmlファイル作成:問題は、私は、Eclipseを通じて展開を実行したら、jarファイルが作成され、ですが、私はそれを起動することはできません

<?xml version="1.0" encoding="UTF-8"?> 
<project default="mytest" basedir="."> 
    <target name ="mytest" description="Create a jar for the Test project"> 
    <echo message="starting MyTest jar creation..." /> 
    <jar jarfile="mytest.jar" includes="*.class" basedir="bin"> 
     <manifest> 
      <attribute name="Created-By" value="1.6.0_04 (Sun Microsystems Inc.)" /> 
      <attribute name="Built-By" value="Me" /> 
      <attribute name="Implementation-Version" value="1.0" /> 
      <attribute name="Main-Class" value="com.mytest.home" /> 
     </manifest> 
    </jar> 
    <echo message="MyTest jar created..." /> 
    </target> 
</project> 

を。私はメッセージを受け取る:メインクラスを見つけることができませんでした:com.mytest.home

どうしたのですか?それは単純なストレートフォワードプロセスのようです。何か不足していますか?

ありがとうございました。

答えて

0

antスクリプトでコンパイルタスクが見つかりません。コンパイルタスクがない場合、クラスファイルはどのように生成されますか?

また、jarファイルを解凍してクラスが実際に存在するかどうかを確認してください。

+0

どのようなコンパイルタスクがわかりませんか? Eclipseからのヘルプを含むいくつかのヘルプ・ウェブサイトを見てきましたが、コンパイル・タスクについては何も言及していません。私は手動ビルドでデプロイメントタスクを実行するプロジェクト(Properties> Builder)をセットアップしました。私はメッセージBUILD SUCCESSFULを取得しますが、私はjarファイルを開いていて空です。どのようにしてコンパイルタスクを指定できますか? – bobetko

+0

私は、コンパイルタスクは何かを理解していますが、それを行う方法はわかりません。私はまた、いくつかの古いプロジェクトでいくつかの既存のdeployment.xmlを見ています。 Appはうまく配置されますが、XMLファイルにコンパイルタスクが見つかりませんでした。 – bobetko

+0

http://ant.apache.org/manual/Tasks/javac.htmlをご覧ください。 Javaファイルを一時フォルダにコンパイルするには、javacタスクが必要です。それで、あなただけが瓶にそれらを束ねることができます。あなたがアリに慣れていないなら、MANIFEST.MFファイルを手作業で作成してjarファイルに組み込む方が簡単です。それはあなたの人生を最初に楽にします。 –

0

私はこれで少しばかり困惑しています。私が知る限りEclipseは実行時にプロジェクトをビルドしています。入力する際に​​、展開スクリプトを指定すると、スクリプトで指定した方法ですべてをパッケージ化するだけで済みます。基本的には、プロジェクトのクラスファイルをjarファイルにコピーします。私の特定の問題については

は、それは私が私のXMLスクリプトは、次のように見ているので、 <瓶>要素の子である <ファイルセット>要素を、行方不明になった判明:

<?xml version="1.0" encoding="UTF-8"?> 
<project default="mytest" basedir="."> 
    <target name ="mytest" description="Create a jar for the Test project"> 
    <echo message="starting MyTest jar creation..." /> 
    <jar jarfile="mytest.jar" includes="*.class" basedir="."> 
     <fileset dir="./bin" /> 
     <manifest> 
      <attribute name="Created-By" value="..." /> 
      <attribute name="Built-By" value="Me" /> 
      <attribute name="Implementation-Version" value="1.0" /> 
      <attribute name="Main-Class" value="com.mytest.home" /> 
     </manifest> 
    </jar> 
    <echo message="MyTest jar created..." /> 
    </target> 
</project> 

jarファイルを実行しようとしましたが、うまくいきました。

+0

あなたはコードをコンパイルするためにEclipseに依存しています。私は、antスクリプトにjavacタスクを置くと言うでしょう。それ以外の場合は、遅かれ早かれ問題にぶつかり始めるでしょう。 –

関連する問題