複数パッケージを持つプロジェクトのエクスポート

このQ&Aのポイント
  • 複数のパッケージを独立したjarファイルにエクスポートする方法についての質問です。
  • 現在、JavaのEclipseで複数パッケージを持つプロジェクトを作成していますが、パッケージ毎に独立したjarファイルにエクスポートする方法がわかりません。
  • エクスポートしたいパッケージ毎に実行可能なjarファイルを作成したいのですが、うまくいきません。どのように設定すればいいでしょうか。
回答を見る
  • ベストアンサー

複数パッケージを持つプロジェクトのエクスポート

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

  • ppmcn
  • お礼率95% (43/45)
  • Java
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • y_shimizu
  • ベストアンサー率41% (27/65)
回答No.1

「プロジェクト」というのは色々なIDEで結構考え方が違ったりするのですが(あと開発現場ごとにも解釈が違ったり)、Eclipseではそれ単体でプロダクトだったりライブラリだったりを表すことが多いですね。 「パッケージ」はIDEはあまり関係なくてJAVA等の言語における概念ですね。JAVAだとスコープに関わりますね。 依存関係が解決されているならば、パッケージの右クリ→エクスポート→jarとかで指定パッケージだけを固められませんか?

ppmcn
質問者

お礼

お礼が遅れてすいません。 何故か自分の中で"実行可能JARファイル"としてエクスポートするものだとばかり思っていましたが、"JARファイル"としてエクスポートしようとするとパッケージ毎にチェックが付けられました。 無事解決しました、ありがとうございました。

関連するQ&A

  • パッケージとビルドパス@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つパッケージを用意した方が整理整頓できるのでこの方法を選びました。もし、「んな、うまい話なんかねぇよ!」ってことでしたら、この方法を廃止しざるを得ないのですが、どうにか実現する方法は無いでしょうか?

    • ベストアンサー
    • Java
  • Ecllipsでのエクスポートについて

    Eclipsのバージョン3.4.0を使用してJavaのゲームを作成していました。 Eclips上のデバックや、実行での動作はまったく問題なかったみたいなんですが、JARファイルにエクスポートしてみて実行すると動作しません。 こうしたケースはエクスポートの仕方が悪いのでしょうか? それともソースの修正をするしか解決しないのでしょうか?

  • eclipseのJavaプロジェクトの出力について

    eclipeのバージョンはJunoです。 エクリプスから「ファイル」→「新規」→「Javaプロジェクト」でJavaプロジェクトを作成します。 テンプレートのJavaプロジェクト直下「META-INFO」ソースフォルダを作成して、META-INF内にXMLファイルを作成。 実行時のclassファイルの出力先は「bin」(初期値のまま)です。 コンパイル時上記binの中に、「META-INFO」ソースフォルダが作成され、META-INF内にXMLファイルが入ってほしいのですが、 実際は、binの直下にXMLファイルが入って今います。 ○現状 ├─bin │ │ XMLファイル ←◆「META-INFO」の中にXMLファイルが作られてほしい │ │ (jarファイル) │ │ │ └─パッケージ 自作のJavaのクラスファイル ○実際に動作してほしい構成 ├─bin │ │ │ │ jarファイル │ │ │ ├─META-INFO │ │ XMLファイル ←◆「META-INFO」の中にXMLファイルが作られてほしい │ │ │ └─パッケージ 自作のJavaのクラスファイル コンパイル時に出力先(binフォルダ)に、META-INFが作成されそのフォルダのなかにXMLファイルを入れるにはどうしたらいいですか? 手作業で、binの中にMETA-INFを作成するのではなく、コンパイル(実行時)にeclipseで自動で行ってほしいです。

  • 複数ファイルから同じ関数の呼び出しできますか?

    今、クライアント・サーバーのプログラムを作っているのですが、クライアントとサーバの間の通信を暗号化しようとしています。 開発環境はVisualStudio2010のMFCを使っています。 サーバとクライアントのプログラムとを同一のプロジェクトにして、サーバとクライアントの起動をオプションで切り分けています。 しかし暗号モジュールは一つのファイルなので、これをp1.cppとしましょう。 サーバのファイルをmain.cpp クライアントをsub.cpp として、main.cppの方で#include "p1.cpp"とやっても、クライアントのソースからは関数が参照できません。 例えば g++ main.cpp sub.cpp として、両方に同じ関数を書くと2重定義になります。 クライアントのsub.cpp にも同じようにインクルードしてやると、再定義されてるとリンクエラーが出ます。どうすれば同じ関数を同一プロジェクト内で共有(他のファイルから参照)させることができますでしょうか? 解決法をよろしくお願いします。

  • Windows Liveメールのエキスポート

    Windows LiveメールデータをOutLookファイルにエキスポートしたいのですが、調査した結果、前者が32ビットで後者が64ビットのプログラムのためか、エキスポートできません。何か方法が無いでしょうか? 「メッセージをWindows Liveメールから Microsoft Outlook または Microsoft Exchange にエクスポートします。」が出て、次のエラーが出ます。「規定のメールクライアントが設定されていないか、または現在使用されているメールクライアントがメッセージングの要求を実行することができません。Microsoft Outlook を実行して、既定のメールクライアントとして設定してください。」 既定のメールクライアントとして設定してもエクスポートは不可です。 ※OKWaveより補足:「ひかりTVのサービスやISPぷらら」についての質問です。

  • HTTPサーバプログラム

    C言語でHTTPサーバを作ろうとしています。 大方動くのですが、Java Applet(Jarファイル)を埋め込んだWebページをクライアント側のブラウザに表示させようとすると、エラー(ClassNotFoundError)が発生してしまいます。 ※GIFファイルなどの表示はうまく動いています。 パケットキャプチャソフトなどを活用して色々調べてみると、サーバ側からクライアント側へJarデータを送信する処理が上手く動いていないようです。 今のHTTPサーバの制約で、データ送信関数で一度に送信できるサイズが32KB程度になっています。 Jarファイルがこの最大サイズ(32KB)以下であれば問題なくクライアント側でJava Appletが起動するのですが、このサイズを超えるJarファイルの場合に先のエラーが発生してしまいます。 ※例えばJarファイルサイズが50KBの場合は、データ送信関数を2度呼び出す処理になります(1回目は32KB送信、2回目は残りの18KBを送信します)。 パケットキャプチャソフトでデータの流れを確認すると、50KBのJarファイル・データはクライアント側へちゃんと送信されているように見えるのですが、Jarファイル・データがクライアント側へ送信された後、(恐らく、クライアント側でJarファイルが正しく受信されなかったと認識されているため)クライアント側はClassファイルをサーバ側へリクエストしに行っています。 ※<applet archive="test.jar" code="test.class">としている場合は、"test.jar"ファイルのデータ送信後、クライアント側から"test.class"をサーバ側へリクエストしに行っています。 50KB程度のGIFファイルなどは、分割送信処理を用いてちゃんとクライアント側のブラウザで表示できているのですが…Jarファイルはなぜ上手くいかないのか分かりません。 Jarファイル・データ送信時には何か特別な制約があるのでしょうか? どなたか詳しい方がおられましたらお教えいただきたく存じます。

  • Ecliplseでは動作するが、JARファイル実行時には動作しない

    Ecliplseでは動作するが、JARファイル実行時には動作しない WINDOWS(XP)環境にて、 JDK、ECLIPSE共に現在の最新のものを使用してゲームを作成しています。 (jdk1.6.0_21、Eclipse(Ver 3.6)) Eclipse上では実行すると正常に動作しますが、 File>EXPORT>JAVA>JAR fileを使用して、JARファイルを作成すると、 (エクスポート時のウィザード設定は全てデフォルト、 JARファイル保存先とmainクラスのみ指定) 作成したJARファイルは起動するだけで何も処理が始まりません。 (JARファイル自体は作成されるが、実行後フレームだけ表示される) エラーの切り分けなど、方法がわからないため、ここから先に進めないでいます。 例として何かエラーになりうる要素があるとすれば、御教授お願い致します。 また、フォルダ階層が下記のようになっている場合、 コマンドプロンプトからのjarファイル作成は どのようなコマンドになるのでしょうか。 御教授お願い致します。 /******************************************************************************* プロジェクトフォルダ    ?.settings        ?org.eclipse.jdt.core.prefs    ?bin        ?パッケージ名称              ?CLASSファイル、各材料(midi、wav、gif、png、jpg等)    ?src        ?パッケージ名称              ?JAVAファイル、各材料(midi、wav、gif、png、jpg等)    ?META-INF        ?.mfファイル    ?.classpathファイル    ?.projectファイル *******************************************************************************/

    • ベストアンサー
    • Java
  • jarファイルをCLASSPATHを設定せずに実行

    eclipseでantを用いてjavaの開発を行っています JDBCを使用するために外部のjarファイルを利用しているのですがその外部のjarファイルを含めた形で一つのjarファイルに固めることは出来るのでしょうか? 具体的には >export CLASSPATH="/workspace/project/lib/bar.jar" >java -jar hoge.jar ではなく >java -jar hoge.jar だけで実行できるようにしたいと考えています

    • ベストアンサー
    • Java
  • Access レコードのエクスポート

    Accessのmdbファイルをサーバー上に置いてあります。 クライアントPCからサーバーにアクセスし、フォームを使用して取引先データを入力します。 クライアントPCはネットワークから切り放して使用することもあるため、取引先データをクライアントPC本体にも保存したいのです。 形式としては、クライアントPCにもmdbファイルをつくり、その中のテーブルに保存したいのですが、 テーブルごとエクスポートするのではなく、フォームで入力しているそのレコードのみクライアントPCのテーブルにエクスポートさせ、その後は1件ずつ追加されていく形をとりたいのです。 (クライアントPCは複数台あるため、自分のPCで入力したもののみ、自分のPCに取り込みたいのです) テーブルまるままエクスポートまでは書けたのですが、レコードをエクスポートが分かりません。 ご教授ください。

  • ランタイムパッケージ

    こんにちは プログラムを作成したにもかかわらず、相手側でどのようにしたらそのプログラムを 実行できるのかまったく考えていませんでした。 ランタイムパッケージというものを相手側のパソコンにインストールすれば いいそうですがランタイムパッケージの内容、作成の仕方などを教えてください。 ダウンロードをvectorなんかでしても良いのですが、内容も知りたいです。 お願いします。

専門家に質問してみよう