- - PR -
[Eclipse] パッケージ宣言と異なるディレクトリへのソース配置
1
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2008-05-07 13:58
お世話になっております。
Eclipseの設定に関してご質問させて頂きます。 現在の業務で既存ソースの修正を行っているのですが、ソース内のパッケージ宣言と ソースファイルの配置ディレクトリが異なっています。 その為、Eclipseを使用して修正を行おうとすると「予想されるパッケージに一致しない」 旨のエラーが大量に出力されてしまいます。 既存のソースがどの様な環境で作成された物なのかは不明なのですが、今回の修正は Eclipse上で行いたい為、なんとかエラーを出さない様にしたいと考えています。 #パッケージ宣言と一致するディレクトリに移動すれば良いのですが、極力ソースの #配置を変更したく無いのです。 一通り設定を除いては見たのですが、「ソースのディレクトリ構成をパッケージと一致 させない」様な設定項目は見つかりませんでした。 Eclipse上では、ソースのパッケージ宣言と配置ディレクトリは絶対に一致させなくては ならないのでしょうか? どなたかご存知の方がいらっしゃいましたら教えて頂きたく、宜しくお願い致します。 | ||||||||||||
|
投稿日時: 2008-05-07 15:04
Javaでは原則としてパッケージ名と同じ名前のフォルダ構成を用いる必要があります。
フォルダ構成にパッケージ名を合わせるか、 パッケージ構成にフォルダ名を合わせてください。 | ||||||||||||
|
投稿日時: 2008-05-07 15:38
>ソース内のパッケージ宣言と
>ソースファイルの配置ディレクトリが異なっています。 具体的にどのように異なってるんですか? hoge.moge.FooClass.java→hoge/moge/FooClass.java が通常だとして。単に src/hoge/moge/FooClass.java のように、上にくっついてるだけ? であれば、プロジェクトのプロパティの、「Javaのビルド・パス」のソースタブで、ソースフォルダーを規定してあげればいいだけなんですが。 | ||||||||||||
|
投稿日時: 2008-05-07 23:55
ご返答ありがとうございます。
>nagise様
>mio様 それが、なぜか hoge.moge.FooClass.java→hoge/moge/FooClass/FooClass.java の様になっているんですよね・・・。 開発は下請けに出していた様で、クライアントも開発時の環境を把握していない為 困っている次第です。 やはりパッケージに合わせてソースの配置ディレクトリを変更してから修正するしか 無いですかね・・・。 | ||||||||||||
|
投稿日時: 2008-05-08 11:46
原則として同一である必要があります。 Sun純正のjavacコマンド、つまるところコンパイラの説明を見てください。 http://java.sun.com/javase/ja/6/docs/ja/technotes/tools/windows/javac.html
少なくとも、Sunのjavacではパッケージ単位でフォルダとマッピングさせる機能性はありません。 ただ、そういう機能性を備えたjavaコンパイラを作ることは原理的に可能です。 たとえばJSPのコンパイラではフォルダ構成とパッケージ構成が合っていなかったりします。 | ||||||||||||
|
投稿日時: 2008-05-08 11:53
そうだ。プログラムからjavac呼んでやる方法だとどうだろう。
http://java.sun.com/javase/ja/6/docs/ja/api/javax/tools/JavaCompiler.html JavaFileObjectを自前で読みだして渡してやればできるのかもしれません。 | ||||||||||||
|
投稿日時: 2008-05-08 19:40
単に、納品用のディレクトリ構成なんてことはないですかね。
以前同じような感じで、ディレクトリを変えて納品した案件があったような…。 shやantで、ファイルを規定のディレクトリへコピーした後コンパイルするようになってたのかも? 今の構成がそのままコンパイルに使われていたという前提から、違うのかもしれません。 | ||||||||||||
|
投稿日時: 2008-05-08 22:43
>nagise様
>mio様
本日クライアントに確認を取り、納品時に元の配置に戻すことを条件に、修正時に一時的にソースの配置を変更する許可を取りました。ソースの配置を変更する事で対応したいと思います。 皆様ありがとうございました。 |
1