アプリ版:「スタンプのみでお礼する」機能のリリースについて

現在JAVAの勉強をしております。
サンプルソースを入力しながら行っております。
カレントディレクトリでコンパイルは正常にできました。
しかし、「packageとimport」の処理を追加しファイルを
ディレクトリに移したところうまくコンパイルが通らなく
なりました。
パスの間違えかとも思いつつ色々調べているのですが、原因
がつかめません。

検索サイトを使って色々な事例を見てみたのですが、解決
出来ませんでした。
すみませんが、ご指導のほどお願いします。
詳細は下記の通りです。
漏れなどありましたらご指摘していただければ補記します。

JDK:1.3.1
OS:Windows2000ProSP2

------------------------------------------------------
ディレクトリ
D:\JAVAPRESS
└─jp
└─co
└─gihyo
└─javapress
├─test
│ ATMTest.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 {

A 回答 (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
などやり方はいろいろあるのですが……

これでもだめならパスの設定云々の問題ではないような気がします。
    • good
    • 2
この回答へのお礼

ありがとうございました。
見事コンパイルできました。
ご指摘の通り、パスの設定ミスでした。
書籍を信用し過ぎたようです。
まだまだ勉強不足な面があるので、がんばります。

お礼日時:2003/03/07 16:59

ディレクトリ構造のツリーは以下でよいでしょうか?



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)で記述してみてもコンパイルが
通りませんでした。

お手数おかけしますがよろしくお願いします。

補足日時:2003/03/07 15:43
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!