パッケージとビルドパス@eclipse

このQ&Aのポイント
  • eclipse3.1.2を使っている場合、package aaa内のファイルをhoge.jarまたはhoge2.jarに含まれるクラスで継承または実装する方法についての質問です。
  • default package内では継承と実装ができますが、default package以外のpackageでは継承と実装ができなくなります。
  • jarファイルを指定する方法やパッケージaaaでjarファイルに含まれるクラスを実装・継承する方法についてのアドバイスを求めています。
回答を見る
  • ベストアンサー

パッケージとビルドパス@eclipse

eclipse3.1.2を使ってあるコードを書いています。次にあるのがこのプロジェクトの構造です。 Project: Aaa | default package-いくつかのファイル | aaa-いくつかのファイル | hoge.jar & hoge2.jar(2つのjarファイルはビルドパスで指定した) 質問はどのようにして、package aaa内にあるファイルがhoge.jarもしくはhoge2.jarにあるクラスを継承または実装するのか?です。 この2つのjarファイルに入っているクラスファイルはdefault package内では実装と継承ができるのですが、default package以外のpackageだと、とたんに継承と実装ができなくなります。importを使うのも手かなと思ったのですが、どうやってjarファイルを指定すればいいのかわかりません。 もともと、ビルドパスはdefault packageにしか、効かないのでしょうか? それから、どのようにpackage aaaはこのjarファイルにあるクラスを実装と継承をするのでしょうか? もともと、パッケージを2つ用意する必要も無いのですが、このプロジェクトの都合上、2つパッケージを用意した方が整理整頓できるのでこの方法を選びました。もし、「んな、うまい話なんかねぇよ!」ってことでしたら、この方法を廃止しざるを得ないのですが、どうにか実現する方法は無いでしょうか?

  • potch
  • お礼率52% (34/65)
  • Java
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • Bonjin
  • ベストアンサー率43% (418/971)
回答No.1

>package aaa内にあるファイルがhoge.jarもしくはhoge2.jarにあるクラスを継承または実装するのか? クラスパス(Eclipseではビルドパス)にhoge.jar,hoge2.jarを追加してください。 あとは普通にパッケージをimportするだけです。 >default package以外のpackageだと、とたんに継承と実装ができなくなります 使用するクラスがデフォルトパッケージかつデフォルトアクセス(アクセス修飾子なし)になっていませんか?その場合、違うパッケージからは利用出来ないはずです。 まずはhoge.jar,hoge2.jarに入っているクラスのアクセス修飾を調べてみてはいかがですか?

potch
質問者

お礼

jarファイルを調べたところ、すべてのファイルがdefault package内に入っていました。クラスファイルしか中になかったので、アクセス権がどうかはわからないのですが、多分デフォルトアクセスでしょう。さすがにこのjarを変更してしまうと、違うところで副作用が発生してしまうので、パッケージの統一で進めます。 貴重な回答ありがとうございました。

関連するQ&A

  • パッケージ名をマッピング等して複数名で参照したい

    とんでもない質問かもしれませんが、もし可能なら是非行いたいことがあり、ご教授下さい。 Javaのソース(hogehoge.java)にパッケージ名を付けています。  例:Package hoge.test; このソースは通常のJavaクラスであり、public static void mainを含まない部品群のクラスだと思って下さい。 このクラスをjarファイルとしてまとめて各プロジェクトで利用しているものとします。 さて、ここからが本題です。 この部品群のパッケージ名を変更しなければならなくなった場合、通常なら部品群であるソースのパッケージ名を変更しなければならないと思っています。 (例えば規約変更の影響で) ただ、この名前で既に他のプロジェクトで利用していることもあり、この部品群を利用する為に記述しているimport句を全て直して行くというのは大変です。 また、部品群の障害や拡張等があった場合に部品群だけを提供することにしており、他人がこの部品群を利用して作成したものが動かなくなってしまいます。 そこで、これら部品群のパッケージ名はそのままとし、別名のパッケージ名で呼び出すというマッピングの様なことは可能なのでしょうか?  ○今までのプロジェクトでの指定方法    import hoge.test.hogehoge;  ○今後のプロジェクトでの指定方法    import org.hoge.test.hogehoge; 以上、宜しくお願いいたします。

  • javaのeclipseでjar追加について

    今現在アスタというアイコン広告を実装しようと考えているのですが、ビルドパスのライブラリの中にjar追加をクリックすると普通なのかもしれないのですが今エクリプスで扱っているプロジェクト一覧が表示されてしま、jar(jp-maru-mrd.jar)をlibのフォルダーに追加できません。追加するには、どうすればいいのでしょうか。 よろしくお願いいたします。

    • ベストアンサー
    • Java
  • 複数パッケージを持つプロジェクトのエクスポート

    文字数の関係で省略しましたが、言語:Java IDE:Eclipseです。 プロジェクト内に複数存在するパッケージをパッケージ毎に独立したjarファイルにエクスポートしたいのですが、躓いてしまっているため回答欲しいです。 現在、ソケット通信のプログラムを勉強として作っています。 "CommTest"プロジェクトに"client.aa.bb.cc"パッケージと"server.aa.bb.cc"パッケージを作って、それぞれのパッケージ内に独立したサーバーとクライアントの通信プログラムを実装してみました。 ここで、クライアント側とサーバー側のパッケージ毎に実行可能jarファイルをエクスポートしようとしたんですが、うまくいきません。 実行構成で"commtest_server"と"commtest_client"を作成してmain関数を教えて、その実行構成を使ってエクスポートをしているのですが、「エクスポートが警告とともに完了しました」と出力されます。詳細を見ると、もう一方のパッケージ内のクラスも参照してしまっている様子です。 プロジェクトとパッケージの概念がうまく理解できていないため、勝手にこういった構成にしてしまったのですが…。 #自分の理解としては、 #・プロジェクトは1つテーマ(プログラムのまとまり) #・パッケージはプロジェクト内の1つのプログラムファイル #というイメージでした。 プロジェクト自体をクライアント側とサーバー側で分けなければいけないのでしょうか。 それとも、パッケージ毎に独立したjarファイルは作成可能でしょうか。 調べ方が悪いのもあると思いますが、jarファイルのエクスポートの仕方を調べると単一パッケージのケースばかりヒットするため、初歩的な問題ですいませんが、質問させてください。 よろしくお願いします。

    • ベストアンサー
    • Java
  • パッケージをjarファイルにするには?

    こんばんは。 単一のクラス、1つのフォルダの中にある複数のクラスをjarファイルにする方法は一応わかります。 しかし、パッケージを丸ごとjarファイルにする方法がわかりません。手順だけでも、書いていただければ結構なので、誰かわかる方ご回答のほうよろしくお願いします。 1つのフォルダ内だと、jarファイル作成時にクラス名を書けますが、パッケージとなると、下の階層の中のクラスはどの様に記述すればよいのかわかりません。 よろしくおねがいします。

    • ベストアンサー
    • Java
  • eclipseでのServlet作成

    eclipseにて動的Webプロジェクトを生成し、サーブレットを作成しました。 その際にjavax.servletを使用しているのですがコンパイルエラーになってしまいます。 なお、jdk_1.6.0_22をビルドパスに設定しています。 servlet.jarはデフォルトでは入っていないとかなんでしょうか? サーブレットを作成する際に必要な設定とかがあるなら教えてください。

    • ベストアンサー
    • Java
  • 同じパッケージ、クラス名が含まれているjarが複数ある場合

    tomcatからjarをロードさせて使用しておりますが、 同じパッケージ、同じクラスを含むjarが複数ある場合、どのような 動きになるのでしょうか。 たとえば AAA.jar BBB.jar の両方に package net.testpakege; public class Testclass{ } みたいなクラスがあるとします。 他のクラスからTestclassを呼び出した場合、 AAA.jarとBBB.jarのどちらのTestclassが使われるのでしょうか。 また現在VMが異常終了してしまう現象が出ていますが、上記の 事と関係がある可能性はありますでしょうか。 宜しくお願いします。

    • ベストアンサー
    • Java
  • Eclipse+Javaで開発をしているのですが、

    Eclipse+Javaで開発をしているのですが、 現在プロジェクトAでjarを作成、 そのjarを参照する形でプロジェクトBの開発をしています。 そこでプロジェクトAでクラス名の変更を行ったのですが、 Eclipseのリファクタリング機能ではプロジェクトA内しかリファクタリングされませんでした。 プロジェクトBにも変更を反映させるにはどうすればいいですか? jarファイルがリファクタリングされた場合に自動的に対応する方法はあるのでしょうか?

    • ベストアンサー
    • Java
  • Eclipseで新規クラスを作成時、スーパークラスをjava.lang.Object以外にするには?

    最近Eclipseを使い始めましたが、パッケージエクスプローラがよくわかりません。 Javaプロジェクトを新規に作成し、 インポートを使って既存のjarファイルをそのプロジェクト内に配置しました。 その後、プロジェクトフォルダを右クリックし、 「ビルド・パス」-「ビルド・パスの構成」から 「ライブラリ」タブの「JARの追加」から先述のjarファイルを選択しました。 これでビルド・パスは通ったと思ったのですが、 新規クラスを作成する際にスーパークラスは「java.lang.Object」しか選択できず、 追加したJARにあるクラスが選択できません。 新規クラス作成時のウィザード画面で追加したJARにあるクラスを 選択するにはどうすればよいのでしょうか? また、そもそもこのやり方でビルド・パスは通っているのでしょうか? 以上、よろしくお願いします。

    • ベストアンサー
    • Java
  • eclipseでSeasar2のframeworkを参照すると文字化け

    eclipseでSeasar2のframeworkを参照すると文字化けする eclipseにSeasar2のプラグインをいれ、Doltengプロジェクトを作成しました。 メインクラスに 「org.seasar.framework.container.factory.SingletonS2ContainerFactory」 をインポートする記述をしました。 eclipseのエディタ上で「SingletonS2ContainerFactory」にカーソルを合わせると 文字化けしたソースコードが参照されます。 プロジェクトのビルドパスに「s2-framework-2.4.41.jar」があり、 「s2-framework-2.4.41-sources.jar」がソース添付されていて、 それを参照した際に文字化けしているようです。 (「s2-framework-2.4.41-sources.jar」をデスクトップにコピーして展開し、 ソースをテキストエディタで開いてみましたが文字化けせずに 正しく表示されました。UTF-8で開きました。) プロジェクトのテキスト・ファイル・エンコードを変更したりもしてみましたが 文字化けしたままでした。(デフォルトはUTF-8でした) eclipse上でこの文字化けは回避できるのでしょうか?

    • ベストアンサー
    • Java
  • Eclipseで、ライブラリを追加したい場合、

    Eclipseで、ライブラリを追加したい場合、 ・JREの拡張ディレクトリ(?)、jdk/jre/lib/ext に置く ・適当なディレクトリに置き、プロジェクト右クリック→プロパティ→Javaのビルドパス→外部jarの追加で指定 があるとおもうのですが、どちらの方がベターなのでしょうか?また、後者の場合、どういったディレクトリに置くのが適当なのでしょう?

    • ベストアンサー
    • Java