• ベストアンサー

jarの配置・参照について

Aproject内にmain,helperとパッケージを作成し、 他チームも共通で利用するhelper内の複数クラスからjarを作成しました。 main内にはmainメソッドを含むクラスが1つのみですが、 他チームは別途mainを含むクラスを作成しています。 Linuxサーバ上/tmp/Aproject/mainにaaaa.classを配置し、 jarを/tmp/Aproject/helper/helper.jarのように配置した場合、 どこにどのようにパスを通すべきなのでしょうか? いろいろ試してみたのですが、うまくいきません。 不足情報ありましたら随時回答します。 宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • arai105
  • ベストアンサー率100% (2/2)
回答No.3

Linuxということですから、 java -cp .:/tmp/Aproject/helper/helper.jar main.aaaa と、クラスパスの各エントリはコロン (:) で区切らないと駄目だと 思います。

参考URL:
http://java.sun.com/javase/ja/6/docs/ja/technotes/tools/solaris/java.html

その他の回答 (2)

  • isle
  • ベストアンサー率51% (77/150)
回答No.2

> "cannot execute binary file"というエラー javaコマンドが正しくインストールされていないのでは? あるいは権限を確認してください。 パッケージは、基準(ルート)パスからの相対パスを表し、 classファイルは相対的に配置する必要があります。 クラスパスは、基準(ルート)パスを列挙します。 jarファイルは中身が相対パスとみなされます。

  • isle
  • ベストアンサー率51% (77/150)
回答No.1

例えばコマンドラインから起動するとした場合 /tmp/Aprojectをカレントにして java -cp .;/tmp/Aproject/helper/helper.jar main.aaaa でうまくいきませんか? aaaa.classはmainパッケージであること。 helper.jarの中身は mainフォルダの中にmainパッケージのclassファイル helperフォルダの中にhelperパッケージのclassファイル が格納されていること。 サーバーならCLASSPATHに"/tmp/Aproject/helper/helper.jar"を追加すれば良いかも。

njomojo
質問者

補足

すみません。説明不足でした。 jarにしているのはhelperパッケージ内のもののみです。 mainパッケージ内にはaaaa.classをclassファイルとして上げ、 helperパッケージのものはclassファイルをおかずにjarで実行したい と考えています。 理由は他チームは別途mainのあるクラスを作成しており、 そこからhelperパッケージのもののみ共有したと考えています。 「java -cp .;/tmp/Aproject/helper/helper.jar main.aaaa」 で実行したところ"cannot execute binary file"という エラーが起こりました。 宜しくお願いします。