• ベストアンサー

すいません。超初心者です…。

今、プログラミングの練習をしています。言語はjavaです。独学なので、立ち止まったら対処ができません。一応、本の通りにやっているつもりなのですが… 本を書き写した所、コンパイル(コンパイラ?、インタープリタ?)が出来ません。 お分かりの方がいらっしゃいましたら、是非ご教授下さい。お願いします。 class Test{ int i = 10; int j = i * 2; int sum(int m){ return j + m; } int sum3(int m,int n){ int k = sum(3); return m + n + k; } } public class sample31{ public static void main(String[] args) { Test t = new Test(); System.out.println("tオブジェクトのメソッド" + "sum3(1,5)の結果:" + t.sum3(1,5)); } } ちなみにエラーの文は、 C:\Source>java sample31 Exception in thread "main" java.lang.NoSuchMethodError: Test.sum3(II)I at sample31.main(sample31.java:17) という風に出ています。(意味は分かりませんが…)

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

  • ベストアンサー
回答No.2

提示されているプログラムをそのままコピーして、 コンパイルして、実行しましたが、 >tオブジェクトのメソッドsum3(1,5)の結果:29 とちゃんと実行できましたよ。

すると、全ての回答が全文表示されます。

その他の回答 (4)

回答No.5

以下のサイトの(reply 9 of 9)にもある通り、classpathの方ではなくて、pathの設定であるように思います。 http://forum.java.sun.com/thread.jspa?threadID=516207&messageID=2460058 以下のサイトを参考に、もう一度確認をしてみてください。(セミコロンで正確に区切られているのかとか、半角スペースが余分に入っていないのかどうか、など。) http://tyche.pu-toyama.ac.jp/~ko-ji/java-in/ http://www.wikiroom.com/java/?path,classpath

すると、全ての回答が全文表示されます。
  • dyna_1550
  • ベストアンサー率34% (122/353)
回答No.4

ごめんなさい、早とちりしました。  java.lang.NoSuchMethodError だったんですね。  Test.sum3(II)I がない、と言ってきてますが、ためしに上記プログラムをコンパイル して、実行しましたが、問題なく実行できました。  C:\java>javac sample31.java  C:\java>java -classpath . sample31  tオブジェクトのメソッドsum3(1,5)の結果:29 同一のファイル内に全てのクラスが書かれていますので、 不整合がおきることも考えにくいですが、どこかで、 別のTestクラスを読み込んでしまっているのでしょうか?

すると、全ての回答が全文表示されます。
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

変ですね。 JDK1.5 ですが、問題なくコンパイル&実行できました。 質問文で書かれているプログラムを sample31.java で保存して javac sample31.java でコンパイル java sample31 で実行しているのですよね?

すると、全ての回答が全文表示されます。
  • dyna_1550
  • ベストアンサー率34% (122/353)
回答No.1

コンパイルは通っているようですので、CLASSPATH の設定ではないでしょうか。 ためしに、  java -classpath . sample31 と打ってみるとどうなるでしょう。 (classpathの後のピリオドは、コマンドを打ち込んだ、現在いる場所という意味です)

すると、全ての回答が全文表示されます。

関連するQ&A