こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

javaのパッケージについての質問です。

すっきりわかるjava入門という本を参考にjavaを勉強しているのですが、
6.3パッケージを利用する
という項目でサンプルコードに従って同じファイルの中に


package calcapp.main;
public class Calc{
public static void main(String[]args){
int a=10;int b=2;
int total=calcapp.logics.CalcLogic.tasu(a,b);
int delta=calcapp.logics.CalcLogic.hiku(a,b);
System.out.println("足したら"+total+"引いたら"+delta);
}
}


package calcapp.logics;
public class CalcLogic{
public static int tasu(int a,int b){
return(a+b);
}
public static int hiku(int a,int b){
return(a-b);
}
}
という、二つの違うパッケージに入ったソースコードを作って、コンパイルしてみたのですが、
コマンドプロンプトに、javac CalcLogic.javaと打つ方は上手くいくのですが
javac Calc.javaの方はパッケージcalcapp.logicsは存在しません、と言われ上手くいきません。
また、javac CalcLogic.java Calc.javaと打つとコンパイルは上手くいくのですが
java Calcはexception in thread"main"java.lang.NoClassDefFoundErrorとでて上手くいきません。
長文の上足りない情報があったりするかもしれませんがわからなくて困っているのでどなたか教えていただけると
助かります。よろしくお願いします。

投稿日時 - 2011-12-08 18:33:37

QNo.7178750

困ってます

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

>java -cp calcapp\logics calcapp\main\Calcとやると
ってその本では実行方法は教えてくれないのですかね・・・
パッケージ内のクラスを実行するには
java パッケージ名.クラス名
としなければいけません。
「java パッケージ 実行」でなど調べてみてください。

投稿日時 - 2011-12-09 10:23:27

お礼

すみません、コンパイルするととしか書いていなかったもので今までと同じやり方だと思い込んでました。
調べたらうまくできました。本当にありがとうございます。

投稿日時 - 2011-12-09 11:26:18

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

ウィンドウズなら/(スラッシュ)じゃなくて、\(半角の円マーク)です。

まずcalcappというフォルダを作って、
そのcalcappの中にmainフォルダとlogicsフォルダの2つのフォルダを作って、
各フォルダに、対応するjavaファイルを入れてみて下さい。

投稿日時 - 2011-12-08 23:14:03

お礼

すみません、windows7です。それでこのようにやったらコンパイルはできました。しかし、java -cp calcapp\logics calcapp\main\Calcとやるとメインクラスcalcapp\main\Calcは見つけられなかったかロードできませんでしたと出ます。しかしクラスファイルは見るとあるんです。classファイルを消してコンパイルしなおしてみても結果は同じでした。でも進歩はあったので助かりました。ありがとうございます。

投稿日時 - 2011-12-09 07:57:08

ANo.1

Calc.javaはcalcapp/mainってディレクトリに
CalcLogic.javaはcalcapp/logicsってディレクトリに入れると良いよ。

投稿日時 - 2011-12-08 20:09:46

お礼

返答ありがとうございます。やってみようと思ったのですが、/は名前に使えないといわれてcalcapp.mainとcalcapp.logicsを作っていれてやってみました。しかし結果は変わりませんでした。わざわざ時間を割いていただいたのにすみません。

投稿日時 - 2011-12-08 21:53:51

あなたにオススメの質問