- ベストアンサー
packageとimportの関係のコンパイルエラー
- Javaの勉強中にpackageとimportの関係によるコンパイルエラーが発生しました。
- ディレクトリ内のファイルを移動した際にコンパイルエラーが発生し、原因が分かりません。
- 検索サイトでの事例を参考にしましたが解決できませんでした。お願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> その書籍には、 > 「クラスパスは、jpの親パスとパッケージがあるディレクトリ名」 > と記述されており、例題と同じように記述してみました。 > そのため、記述したディレクトリは存在しません。 何かその書籍は嘘をついていませんか? (というより、「クラスパスは、jpの親パスとパッケージがあるディレクトリ名」という日本語自体がわかりづらい) クラスパスというのは、class ファイルを配置するディレクトリ構造のルートを指定するものです。 今回の場合は、D:\javapress というディレクトリの中にパッケージに対応したサブディレクトリを作っているので、D:\javapress がクラスパスになります。 D:\javapress\jp\co\gihyo\javapress\test>javac -classpath D:\javapress ATMTest.java でコンパイルできませんか? 他にも D:\javapress>javac -classpath . jp\co\gihyo\javapress\test\ATMTest.java D:\javapress>javac -classpath D:\javapress jp\co\gihyo\javapress\test\ATMTest.java などやり方はいろいろあるのですが…… これでもだめならパスの設定云々の問題ではないような気がします。
その他の回答 (1)
- UKY
- ベストアンサー率50% (604/1207)
ディレクトリ構造のツリーは以下でよいでしょうか? D:\javapress └jp └co └gihyo └javapress ├test │└ATMTest.java └account ├Account.java └CommissionAccount.java ATMFrame というクラスのソースが見当たりませんが、このクラスのソースは正しく設置されているでしょうか? そして、クラスパスに設定されている D:\javapress\account というディレクトリもツリーの中にありませんが、これについてもいかがでしょう? 確認してください。
補足
ご指摘ありがとうございます。 再度書き直しました。 ディレクトリ D:\JAVAPRESS └─jp └─co └─gihyo └─javapress ├─test │ ATMTest.java ├─atm │ ATMFrame.java └─account Account.java CommissionAccount.java コンパイル D:\JavaPress\jp\co\gihyo\javapress\test>javac -classpath D:\JavaPress\Account ATMTest.java ATMTest.java:2: シンボルを解釈処理できません。 シンボル: クラス ATMFrame 位置 : atm の パッケージ import jp.co.gihyo.javapress.atm.ATMFrame; パッケージ ATMTest.javaの内容 package jp.co.gihyo.javapress.test; import jp.co.gihyo.javapress.atm.ATMFrame; import jp.co.gihyo.javapress.account.*; class ATMTest { Account.javaの内容 package jp.co.gihyo.javapress.account; public class Account { ATMFrame.javaの内容 package jp.co.gihyo.javapress.atm; import jp.co.gihyo.javapress.account.Account; >クラスパスに設定されている D:\javapress\account という これは、サンプルとしていた書籍と同じように設定しました。 その書籍には、 「クラスパスは、jpの親パスとパッケージがあるディレクトリ名」 と記述されており、例題と同じように記述してみました。 そのため、記述したディレクトリは存在しません。 試しにjpの親パス(D:\javapress)で記述してみてもコンパイルが 通りませんでした。 お手数おかけしますがよろしくお願いします。
お礼
ありがとうございました。 見事コンパイルできました。 ご指摘の通り、パスの設定ミスでした。 書籍を信用し過ぎたようです。 まだまだ勉強不足な面があるので、がんばります。