アプリ版:「スタンプのみでお礼する」機能のリリースについて

javaを始めたばかりのものです。
機能概略:
(1)テキストfile "in.c"をbuf[]に読み込む
(2)buf[]の内容を変換する。
(3)テキストfile "out.c"にbuf[]の内容を書き出す
問題点:
・コンパイルは、OK。
・実行時、下記 エラ-メッセ-ジがでてしまいます。
Exception in thread "main" java.lang.NoSuchMethodError: main

・ポインタ-が無いので、値渡しで渡して、値をかきかえることは無理?

以下
ソ-ス _002.JAVA
import java.io.*;
class ChangeData {
//コンストラクタ
ChangeData() {
}
/*++ 指定されたファイル名を読み込み*/
void SetInputData(String inputFile,
byte bBuf[],
int iInCntMax) {
//ファイルの読み込み処理を記述
//iInCntMaxに読み込みサイズを設定
}
/*++ データの変換処理 */
//ファイルの変換処理を記述
//この処理はまだ未記述
/*++ 指定されたファイルへ書き込み*/
void PutOutputData(String inputFile,
byte bBuf[],
int iInCntMax) {
//ファイルの書き込み処理を記述
//iInCntMaxサイズ分
//iInCntMaxに読み込みサイズを設定
}
}/*end クラス*/
/* メインルーチン----------------------------*/
class _002 {
public static void main() {
int iInCntMax,iOutCntMax;/*入力/出力buf長*/
ChangeData data = new ChangeData();
byte bBuf[] = new byte[0x100];
iInCntMax=iOutCntMax=0;
data.SetInputData("in.c",bBuf,iInCntMax);
data.PutOutputData("out.c",bBuf,iOutCntMax);
}
}

A 回答 (4件)

あ、そうか。


Java の main メソッドは、引数なしはありません。常に
public static void main( String[] args )
です。
    • good
    • 0

もう一つ質問があったのですね。


・ポインタ-が無いので、値渡しで渡して、値をかきかえることは無理?
という件ですが、一般論としてはa-kumaさんの回答の通りです。
が、ご質問のソースの中にある
//iInCntMaxに読み込みサイズを設定
というのは、無理です。
とりあえず、この場合は、関数の戻り値の型をintにしてそこへ返してしまう
のが手っ取り早い解決法ですが、本当はもう少しオブジェクト指向の基本的な
考え方を勉強して欲しいところです。
(ヒントだけ言うと、ChangeDataというのは名前からして手続き指向です。
「読み込まれたデータ」を表すクラスが一つあれば足りるケースだと思います。)
    • good
    • 0

ChangeData クラスのメソッドにpublic指定が無いので、


他クラスのメソッドであるmain()から見えないのだと思います。
void SetInputData( → public void SetInputData(
void PutOutputData( → public void PutOutputData(
としたら良いのでは。
    • good
    • 0

試していないのですが、



> ・実行時、下記 エラ-メッセ-ジがでてしまいます。
> Exception in thread "main" java.lang.NoSuchMethodError: main

エラーメッセージ通りで、class _002 のメソッド main() で、存在しない
メソッドを呼ぼうとしています。多分 ChangeData クラスのメソッドだと
思います。メソッド名と、その引数の方を再確認しましょう。

> ・ポインタ-が無いので、値渡しで渡して、値をかきかえることは無理?

Java はポインターと呼んでいないだけで、ほとんどが「参照」ですから、
心配するに及びません。

この回答への補足

publicに変更してためしましたが、
やはり
Exception in thread "main" java.lang.NoSuchMethodError: main
のメッセ-ジがでてしまいます。

補足日時:2001/06/21 13:07
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!