javaで2つのソースコード(Calc.javaとCalcLogic.java)にまたがって作成された1つのプログラムは、コンパイルには成功しますが、実行できません。
コマンドプロンプトに打ち込むコマンドは、java calcapp.main.Calcです。
エラー内容は、メイン・クラスcalcapp.main.Calcが見つからなかったかロードできませんでした、というものです。
おそらく、クラスパスの指定ができていないのだと思います。
ユーザー環境変数に新規で、変数名:CLASSPATH 変数値:C:\javaという任意のディレクトリを指定して適応させると、C:\Users\xxxx\soucecode\java配下にあるソースコードがすべて実行できなくなってしまいます。
なので、もともとあった変数名:JAVA_HOME 変数値:C:\Program Files\Java\jdk1.8.0_172の変数値に、C:\javaを追加して対応することにしました。
追加後は、変数名:JAVA_HOME 変数値:C:\Program Files\Java\jdk1.8.0_172;C:\javaです。
しかしそれでも実行できません。
ちなみに実行させようとしているCalc.javaとCalcLogic.javaの完全限定クラス名はcalcapp.main.Calcとcalcapp.logics.CalcLogicで、C:\java\calcapp配下にmainとlogicsというフォルダを作成してそれぞれ保存してあります。
またコマンドプロンプトで実行する際は、java calcapp.main.Calc calcapp.logics.CalcLogicと2つ並べて記述せず、java calcapp.main.Calcと入力して、enterキーを押せばいいのですよね?
適切にまとめられていない質問かもしれませんが、javaの勉強に行き詰っているので、どうかご回答いただけると助かります。
必要な情報が記載されていない場合は、ご指摘いただければお伝えします。
【Calc.java】
package calcapp.main;
import calcapp.logics.CalcLogic; // この行を追加
public class Calc{
public static void main(String[] args) {
int a = 10; int b = 2;
int total = CalcLogic.tasu(a,b); // FQCNじゃなくてもOK
int delta = calcapp.logics.CalcLogic.hiku(a,b);
// もちろんFQCNで書いてもOK
System.out.println("足したら" + total + "、引いたら" + delta);
}
}
【CalcLogic.java】
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); }
}
回答3件
あなたの回答
tips
プレビュー