JavaのStackOverflowErrorエラーの原因と対処法

このQ&Aのポイント
  • JavaのStackOverflowErrorエラーが発生しています。このエラーの原因と対処法について説明します。
  • エラーが発生する箇所は、mainメソッドからmojiメソッドを呼び出しているところです。この呼び出しで無限ループが発生し、StackOverflowErrorエラーが出力されます。
  • エラーの対処法としては、無限ループを避けるようにプログラムを修正する必要があります。適切な条件文や制御文を追加することで、無限ループを回避しエラーを解消することができます。
回答を見る
  • ベストアンサー

 Exception in thread "main" java.la

 Exception in thread "main" java.lang.StackOverflowError というエラーが出ます  moji()にtestという変数をいれてやり、mainから、書かそうとしていますが、  Exception in thread "main" java.lang.StackOverflowError というエラーが出ますが、何故かわかりません。  宜しくお願いします。 ************************************************************ public class ArgsTest2 { public static void main(String args[]) { moji(); } public static void moji() { String[] test = {"abcde","fghij"}; main(test); } }

  • Java
  • 回答数1
  • ありがとう数3

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

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

ユーザ定義関数(moji)がmain関数を呼ぶことができるのか 分かりませんが、できたとしてもこのコードでは、 main()→moji()→main()→moji()・・・ の無限ループになりますね。 文字を出力するコードもありませんし、 もう一度落ち着いて考え直してみてください。

関連するQ&A

  • java

    コンパイルできても、実行ができません。 次のようなエラーがでます。 このエラーはどのようなエラーなのでしょうか? Exception in thread "main" java.lang.NoClassDefFoundError: test コードはただたんにHello JAVA と表示させるだけです。 class Test{ public static void main(String args[]){ System.out.println("Hello Java\n"); } }

    • ベストアンサー
    • Java
  • 今日からjavaの勉強をはじめたものです

    以下のプログラムを作成したところ、コンパイルは通るのですが、実行すると、Exception in thread "main" java.lang.NoClassDefFoundError: testとでます。こんな簡単なプログラムも実行できないなんて。。だれかわかる人いませんか? class HelloJava { public static void main(String[] args) { System.out.println("Javadasu"); } }

    • ベストアンサー
    • Java
  • Exception in thread

    数日前にjavaの勉強をはじめました。 javacによって、classファイルは作成できました。 ファイルの中身は、 class Example1 {public static void main(String args[]) {System.out.println("This is the output from Example1");}}です。 環境変数のPATHはいじらずに、フルパスで作業しています。 classファイルは、C:\Java\jdk1.5.0\bin\exampleの中に保存されています。 java.exeは、C:\Java\jdk1.5.0\binな中にあります。 javaを実行しようとして、C:\Java\jdk1.5.0\bin>java C:\Java\jdk1.5.0\bin\example\Example と入力したところ Exception in thread "main" java.lang.NoClassDefFoundError: C:\Java\jdk1.5.0\bin\example\Exampleというエラーがでてしまいました。 原因がわかる方、教えていただけないでしょうか。 よろしくお願いいたします。

    • ベストアンサー
    • Java
  • Exception in thread "main" java.lang.VerifyError:

    JAVAをやり始めて間もないものですが、プログラムの実行を行うと下記エラーが発生してしまいます。 【エラー内容】 Exception in thread "main"java.lang.VerifyError: (class: KouH, method: doSyori signature: ()Z) Incompatible object argument for function call at FinGiuse.main(FinGiuse.java:53) エラー内容の意味が全く分かりません。 ご存知の方、教えてください。お願いします。

  • 妙なエラー

    Exception in thread "main" java.lang.NoClassDefFoundError: Test のエラーの意味はなんでしょうか? class Test{ public static void main(String args[]){ System.out.println("Hello"); } } コンパイルは成功し java Test[enter] に対して出ます。 実は僕の環境ではきちんと実行できます。 知り合いのコンピュータだと出来ないんです。 メールのやり取りですので、何が間違っているのか謎なんです。 おしえてください・・・

  • javaが実行されない

    雑誌を買ってjavaでプログラミングをしているのですが なぜか実行できません。 ツールはteraPadとJDKを使っています。 public class sample { public static void main(String[] args) { System.out.println("hello!"); } } コンパイルし、classファイルを実行すると Exception in thread "main" java.lang.NoClassDefFoundError: sample/class と出て実行できません。結果はhello!となるはずなのですがどなたかどこがおかしいのか教えてください。

    • ベストアンサー
    • Java
  • Exception in thread "main" java.…でも。

    Javaの初心者です。 仕事で他の方が作ったプログラムをいじることになりました。 あるclassファイルを実行しようとしたところ、javaコマンドで実行しようとしたところ、タイトルにあるように、Exception in thread "main" java.lang.NoClassDefFoundError:というエラーメッセジーが出ました。 いろいろ調べた結果、「:」以降に出てくる名前のクラスが見つからず、大半の場合は、CLASSPATHの指定がされていなかったり、まちがっていることが分かりました。 ただ、今回、表示されたのは、こんなクラス名なんです。 org/apache/bcel/generic/ATHROW bcel-5.1.jarというファイルはあるのですが、これをどこかに置いたら解決するものなのでしょうか? ためしに、実行しようとしたclassファイルと同じディレクトリに置いてましたが、何の効果もありませんでした。 もしお分かりになる方がいらっしゃいましたら、よろしくお願い致します。

    • ベストアンサー
    • Java
  • 超初心者です。教えてください。

    初心者です。javaのマニュアル書に書いてある class Hello{ public static void main (String[] args){ System.out.println("Hi! Hello!!"); } }   はコンパイルすることができたのですが、実行すると Exception in thread "main"java.lang.NoClassDefFoundError: Hello という文書が出てきますどうすればいいのでしょうか。教えてください。

    • ベストアンサー
    • Java
  • Javaのクラス作成について。

    現在、Javaで新規クラスを作成しています。 「String型の変数を受け取ってトリミングしてString型で返す」と言うプログラムを作成したいのですが、なかなかうまくいきません。 現在、考えているのは --- Trimming.java --- public class Trimming{ String new_id; public String TrimmingId(String id){ id = new_id; String idtrim = new_id.trim(); idtrim = id; return id; } } --- Test.java --- class Test{ public static void main(String[] args) { String id = " Trimming "; Trimming ID = new Trimming(); System.out.println(ID.TrimmingId(id)); } } --- 現在、出ているエラーは Exception in thread "main" java.lang.NullPointerException at Trimming.TrimmingId(Trimming.java:6) at Test2.main(Test2.java:6) です。 よろしくお願いします。

    • ベストアンサー
    • Java
  • 「Exception in thread "main" java.lang.NoClassDefFoundError: CUSTOMER」エラー

    Oracle9i R2にJDBCで接続してCUSTOMER表のレコード件数を調べる単純なJavaプログラムをつくろうとしています。 以下のソースをOracle端末上で実行すると「Exception in thread "main" java.lang.NoClassDefFoundError: CUSTOMER」というエラーメッセージが表示されます。 環境設定としてCLASSPATHにclasses12.zipのパスを通しました。 ------------------------------------------------- // JDBC APIのインポート import java.sql.*;class CUSTOMER { public static void main (String args[]) throws SQLException, ClassNotFoundException { // JDBC Driverの登録 Class.forName("oracle.jdbc.driver.OracleDriver"); // Oracle9iに接続 Connection conn = DriverManager.getConnection ("jdbc:oracle:thin@192.168.0.10:1521:testdb", "test", "test"); // ステートメントを作成 Statement stmt = conn.createStatement(); // 問い合わせの実行 ResultSet rset = stmt.executeQuery("SELECT COUNT(*) FROM CUSTOMER"); // 問い合わせ結果の表示 while ( rset.next() ) { // 列番号による指定 System.out.println(rset.getInt(1) + "\t" + rset.getString(2)); } // 結果セットをクローズ rset.close(); // ステートメントをクローズ stmt.close(); // 接続をクローズ conn.close(); } } ------------------------------------------------- 何かおわかりの方いらっしゃいましたら教えて下さい。宜しくお願いします。

    • ベストアンサー
    • Java