2017-01-30 6 views
0

私はApache Ant 1.9.4でIntelliJ IDEA 2016.3.1を使用しています。私は私のプロジェクトを構築するために以下のスクリプトファイルを使用します。 jarターゲットは、エラーなしで.jarファイルを生成します。 IDEからアプリケーションを実行できます。ただし、.jarファイルからアプリケーションを実行することはできません。私は間違って何をしていますか? .jarファイルを実行する特別な方法ですか?Apache Antで生成された.jarファイルの実行方法?

<project name="RegexDemo" basedir="."> 

<property name="version">1.0.0</property> 
<property name="dir.src">src/com/fagan/demo</property> 
<property name="dir.build">build</property> 
<property name="dir.build.classes">${dir.build}/classes</property> 
<property name="dir.build.javadoc">${dir.build}/javadoc</property> 
<property name="file.jar">${dir.build}/RegexDemo-${version}.jar</property> 

<path id="projectClasspath"> 
    <fileset dir="lib"> 
     <include name="**.jar"/> 
    </fileset> 
</path> 

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

<target name="init"> 
    <mkdir dir="${dir.build}"/> 
    <mkdir dir="${dir.build.classes}"/> 
</target> 

<target name="compile" depends="init"> 
    <echo>Compiling Java source</echo> 
    <javac classpathref="projectClasspath" 
      srcdir="${dir.src}" 
      destdir="${dir.build.classes}"/> 
</target> 

<target name="jar" depends="compile"> 
    <echo>Making JAR file</echo> 
    <jar basedir="${dir.build.classes}" file="${file.jar}"/> 
</target> 

<target name="javadoc"> 
    <echo>Making JavaDoc from source</echo> 
    <javadoc sourcepath="${dir.src}" destdir="${dir.build.javadoc}"/> 
</target> 

</project> 

EDIT: は、私は次のスニペットで私のjarターゲットを交換したが、それはうまくいきませんでしたどちらか

<target name="jar" depends="compile"> 
    <echo>Making JAR file</echo> 
    <jar basedir="${dir.build.classes}" file="${file.jar}"> 
    <manifest> 
     <attribute name="Main-Class" value="com.fagan.demo.MainWindow"/> 
     <attribute name="Class-Path" value="${file.jar}"/> 
    </manifest> 
    </jar> 
</target> 

EDIT 2:ここではは私のMANIFEST.MFファイル

です
Manifest-Version: 1.0 
Ant-Version: Apache Ant 1.9.4 
Created-By: 1.8.0_111-b14 (Oracle Corporation) 
Main-Class: com.fagan.demo.MainWindow 
Class-Path: build/RegexDemo-1.0.0.jar 
+0

あなたはその名前が意味する「実行可能なジャー」を作ってみたいです。この質問は役に立ちます:http://stackoverflow.com/questions/9874550/how-to-create-a-bundled-runnable-jar-using-ant –

+0

あなたの答えをありがとうが、それは未解決の質問です。しかし、私はその質問からいくつかの提案を試み、彼らは動作しませんでした。 – saidfagan

+0

あなたはそれが動作しないと言う。どのような種類のエラーが発生したのかを示すことができますか? –

答えて

1

私が間違って理解している場合は、単純なダブルクリックで実行することを期待している場合は、それを実行しません。 jarを作成したら、java -jarコマンドを実行して実行します。あるいは、このコマンドをjarファイルの横にあるバッチファイル/シェルスクリプトに入れてダブルクリックすると、うまく動作します。お役に立てれば。

+0

はい、私は.jarをダブルクリックして実行しようとしていました。今、私は自分の問題を理解しています。答えてくれてありがとう。 – saidfagan

+0

あなたは歓迎です:) – Jayesh

1

MANIFESTに記載されているメインクラスがjarファイルに存在するかどうかを確認します。マニフェストでANTによって生成されたエントリが実際に存在するかどうか確認してください。 また、ファイル属性ではなくjarタスクでdestfile属性を使用する必要があります。

+0

私の質問を編集し、マニフェストファイルの内容を追加しました。また、私はjarターゲット内で 'file = "$ {file.jar}"'を 'destfile = "$ {file.jar}"'に置き換えました。このすべてが役に立たなかった。 – saidfagan

関連する問題