2009-06-04 15 views
0

私は私がアプリケーションを実行しようとすると、私は私のメインクラスについてクラスが見つからない例外には見られないのJavaジャークラスが見つかりません例外

メイン$ 4ウィンドウズとMac OS X上ではなく、窓の上にきれいに自分のアプリケーションを構築することができます。

クラスがあり、きれいに構築します。なぜクラスファイルを見つけることができないのですか? JarはOS Xで動作します。

Jarは次のように作成されます。

<target name="jar" depends=""> 
    <jar destfile="build/application.jar" > 
    <manifest> 
     <attribute name="Built-By" value="Hamza"/> 
     <attribute name="Main-Class" value="application"/> 
    </manifest> 
    <fileset dir="build"> 
     <include name="**/*.class"/> 
    <include name="**/*.png"/> 
     <exclude name="**/*.jar"/> 
    </fileset> 
    </jar> 
</target> 

OS Xではエラーなしで実行できますが、Windowsでは例外が見つかりません。

+0

あなたが試しているコマンドラインスニペットを追加できますか? – Ram

+0

メインのsomeApplication.javaを保持するクラスを呼び出して、実行しようとするとsomeApplication $ 4が見つかりません。 .classファイルはjarファイル内にあります。 OS Xでビルドしても問題が発生しない場合は、同じビルドスクリプトを使用します。 –

答えて

1

同じJVMで実行されていますか?メイン$ 4は、それが見つからない匿名クラスであることを示しているようです。詳細情報なしであなたを助けるのは難しいです。たぶん、コードといくつかのスタックトレース、および使用しているJREのバージョンを提供しますか?

ありタイプミス:きれいおよびMac OS X上ではなくWindows上

0

あまり情報が、あなたのメインクラスで匿名クラスは、それが持っているので、することはできませんいくつかの依存関係を解決できないように見えます作成した。

また、ビルド時間とランタイムクラスのパスには違いがあります。実際のランタイムには、ビルドよりも多くのjarが必要になる可能性があります。

たとえば、コード内で参照するインターフェイスを含むjarがコードのビルドに必要ですが、コードを実行するにはそのインターフェイスの実装にjarが必要です。

EDIT: このアップデートはあなたのビルドを示しています。これはすでに述べた通りです(OSは関係ありません)。あなたの問題は実行時のクラスパスです。クラスパス環境変数は、あるOSでは設定されていて、他のOSでは設定されていませんか?私たちはこれからあなたの依存関係を知ることはできません。関係する匿名クラスの内容を知ることは、依存関係が何か不足しているかを理解するのに役立ちます。

1

Main-Class属性は本当に "application"に設定されていますか?

Main-Classは、実行するクラスへの相対パスを示す必要があります。 "myPackage.Application"、または単に "Main"。