• 締切済み

サブパッケージについて

jp.co.checkに格納したCheckDataクラスを jp.co.dataのmainメソッドで呼び出したいのですが、 C:\j\jp\co\alpha\subject>javac data\ex31.java data\ex31.java:7: check.CheckData にアクセスできません。 クラスファイル .\check\CheckData.java は不正です。 ファイルにクラス check.CheckData が含まれていません。 削除するか、クラスパスの正しいサブディレクトリにあるかを確認してください。 check.CheckData a = new check.CheckData(); というエラーメッセージが出ます。 作成したソースは package jp.co.data; public class ex31 { public static void main(String args[]) { int x = 333; check.CheckData a = new check.CheckData(); a.checkNum(x); } } これと以下の package jp.co.check; public class CheckData { public int checkNum(int a) { if(a > 0) System.out.println("true"); } } 2つです、どなたか教えてください。

みんなの回答

  • tachiwa
  • ベストアンサー率34% (25/73)
回答No.3

今晩は、 私のやり方を下記に示します。参考にしてください。 package jp.co.check; public class CheckData{ public int checkNum(int a){ if(a > 0){ System.out.println("true"); } return a; } } package jp.co.data; import jp.co.check.*; public class ex31{ public static void main(String args[]){ int x = 333; CheckData a = new CheckData(); x=a.checkNum(x); System.out.print(x); } } コンパイルはすべてを見渡せるところからやります。 C:\java>javac jp\co\check\CheckData.java C:\java>javac jp\co\data\ex31.java 実行も、すべてを見渡せるところからやります。 C:\java>java jp.co.data.ex31 true 333 無事出来ました。

回答No.2

こんにちは。 補足ですが、このようにimport文を書いてみてください。 -------------------------------------- package jp.co.data; import jp.co.check.CheckData; // 追加したもの public class ex31 -------------------------------------- import文を追加すれば、CheckDataクラスを認識できるようになるので、以下のようにクラス名だけの定義でよくなります。 CheckData a = new CheckData();

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

異なるパッケージのクラスなどを利用する場合はimportしましょう。 概念がわかっていないのに利用するのは、あまり利口とは言えません。ちゃんと理解して使った方がいいですよ。