2012-04-03 22 views
0

JARファイルについて学習していて、自分で作成して実行しようとした。私は、次の手順を行って:JARファイルを実行するとエラーが発生する

  1. は、「ソース」サブフォルダと「クラス」のサブフォルダ
  2. でプロジェクトフォルダを作成し、私は他のインスタンスを作成し、mainメソッドで2つのソースファイル、1を書きましたクラス内で単純なメソッドを実行します。
  3. これらを 'classes'サブフォルダにコンパイルしました。私は彼らが走るかどうかを調べた。彼らはした
  4. 私は、マニフェストファイルを作成し、メインクラス:xxxxを記入し、リターンキーを押します。私は

    jarファイルを書き込むことによって、ソースのサブフォルダクラスのサブフォルダ内のjarファイルを作成し

  5. でこれを保存-cvmf manifest.txt zzz.jar * .classファイル

  6. 入力してjarファイルを実行しようとしました

をzzz.jar -jar

Javaは、これはにClassNotFound例外を提供します。私がWindowsでダブルクリックしてjarを実行しようとすると、「メインクラスxxxxが見つかりませんでした」というエラーボックスが表示されます。

マニフェストファイル内のクラスのスペルをダブルチェックしました。

おそらく重要:java -cpを使用してプログラムをコンパイルする必要があります。私のクラスパスに問題があるので、xyz。これは私が別の方法で瓶を実行する必要があることを意味しますか?私は java -cpを試しました。 -jar zzz.jar しかし、同じ例外が発生しました。

編集:私は最初からやり直してしまいましたが、今は(基本-jar zzz.jarコマンドで)実行されます。私は何が間違っているのかわからないが、それがうまくいっていることを誇りに思います!

+0

Sperick @:あなたはジャーTF Jayan

+0

私はちょうど今のことをやったことにより、jarファイルの内容を確認しました。これには2つのクラスファイルとMETA-INFフォルダとmanifest.mfファイルが含まれています – Sperick

答えて

1

おそらく、クラスパスの後に実行する.classファイルのパス全体を指定する必要があります。すなわちjava -cp xxx.jar classes.mainProgram.classです。ここで、classesは、クラスファイルを含むフォルダーの名前です。

+0

私はこれを試しました。私のjarファイルはtest.jarと呼ばれ、メインクラスのクラスはclassTestMainと呼ばれています。java -cp test.jar classes.classTestMain.classこれは私に同じ例外エラーを返しました – Sperick

1

5.すべてのクラスファイルがあるクラスサブフォルダで実行しないでください。あなたのクラスがパッケージに入っていれば、* .class ..の代わりに*を使いたいでしょうか?

あなたのjarファイルは、実行することができます含まれているかどうか確認するには:

jar tf zzz.jar 
+0

申し訳ありませんが、それは誤字です。私はクラスでこれをやっているので、私はクラスをクラスに入れていない(本から)。これが実行されたら、それは次のステップになるだろう – Sperick