「args [0]」ランダムダブルを出力するクラスRandomSeqと、StdInの平均を出力するクラスAverageがあります。コードの記述とコンパイルに DrJava を使用しています。StdIn と out ライブラリをダウンロードし、クラスの同じフォルダーに配置しました。私はJavaを学んでいます。
最初の問題は、DrJava の「相互作用」セクションにあります。テキスト ファイルを作成する代わりに書き込むjava RandomSeq 10 > data.txt
と、出力が出力されます。なんで?
次に、Windows コマンド ラインで同じコマンドを入力しました。txtファイルが正常に作成されました。
次に、RandomSeq 10 の出力を Average の入力にパイプします。DrJavajava RandomSeq 10 | java Average
の Interactions セクションに書き込むと、おかしな動作が発生します。cmd に書き込むと、次のエラーが出力されます。
Exception in thread "main" java.lang.NoClassDefFoundError: StdIn
at Average.main(Average.java:7)
Caused by: java.lang.ClassNotFoundException: StdIn
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 1 more
java Average < data.txt
同じエラーが表示されます。なぜですか?
public class RandomSeq
{
public static void main(String[] args)
{
int N = Integer.parseInt(args[0]);
for (int i = 0; i < N; i++)
{
System.out.println(Math.random());
}
}
}
public class Average
{
public static void main(String [] args)
{
double S = 0;
int i = 0;
while (!StdIn.isEmpty())
{
double n = StdIn.readDouble();
S += n;
i++;
}
S = S/i;
//StdOut.printf("The mean is %.3f", S);
StdOut.println(S);
}
}