私は学校の学生ですが、NetBeans IDEを使用してJavaプログラムを作成し、プロジェクトを作成していません。NetBeans IDEの同じプロジェクトで異なるパッケージを使用する際の問題
今、私はこの問題に直面しています。同じプロジェクトに2つのパッケージがあります。 1つは私が作成したユーザー定義のユーティリティパッケージです。これには、印刷用に定義された方法と二次元配列を入力として持つメソッドを持つ1つのプログラムがあります。主な方法はありません。
私のクラスの一部は以下のとおりです。私は問題に直面している部分だけを与えています。
これは、私がアクセスしようとしているクラスの入力方法です。
package AnswerPrograms;
import UserDefinedUtilities.*;
import java.util.*;
public class J124{
private int m, n;
private void Input(){
Scanner kb = new Scanner (System.in);
System.out.print("Enter the number of rows: ");
m = kb.nextInt();
System.out.print("Enter the number of columns: ");
n = kb.nextInt();
kb.close();
int arr[][] = new ArrayUtilities2D().InputInt(m, n); //using the input method from the above class
System.out.println("The original matrix is: ");
new ArrayUtilities2D().IntPrint(m, n, arr);
if (m % 2 == 0){
Mirror_Even(arr);
}
else{
Mirror_Odd(arr);
}
}
. //other necessary methods are present here
.
.
.
}
2番目のパッケージでは、プログラムを保存しています。今、私がこのメソッドを使ってこのクラスからの入力をしようとすると、次の行が表示されます:
Exception in thread "main" java.util.NoSuchElementException
Enter the element in cell (0,0): at
java.util.Scanner.throwFor(Scanner.java:862)
at java.util.Scanner.next(Scanner.java:1485)
at java.util.Scanner.nextInt(Scanner.java:2117)
at java.util.Scanner.nextInt(Scanner.java:2076)
at UserDefinedUtilities.ArrayUtilities2D.InputInt(ArrayUtilities2D.java:24)
at AnswersPrograms.J124.Input(J124.java:13)
at AnswersPrograms.J124.main(J124.java:90)
Java Result: 1
BUILD SUCCESSFUL (total time: 5 seconds)
これはなぜ来るのですか?私はBlueJでこの問題に直面していません。何かを入力する前にNoSuchElementExceptionが存在するのはなぜですか?これを是正するために私は何をすべきですか?私は自分のjdkを変更する必要がありますか?
例外は 'main'にありますので、代わりに' main'のコードをアップロードしてください。または、自分で見つけるためにデバッガを使用することができます –
私が言ったように、ファーストクラスはメインクラスがありません。それはユーティリティクラスなので、私はメインを書きませんでした。 2番目のクラスにはメインがあります。私はすぐにそれをアップロードします。 –
InputでSystem.in()を閉じてから、InputIntでそれを読み取ろうとしています。したがって、エラーが示すように、スキャナには何も要素がありません。それはパッケージとは関係ありません。また、Javaの命名規則を尊重してください。パッケージはすべて小文字で、メソッドは小文字で始まり、キャメルケースになっています(名前にはアンダースコアではありません)。 –